LINUX.ORG.RU

Ответ на: комментарий от Aborigen1020

а готового велосипеда не видели?

sqlite - это база с кучей таблиц и другим барахлом. Кто знает, что тебе оттуда нужно ?

Вот велосипед. 20 строчек из документации

2 параметра: sqlite_file table

Без имени таблицы говорит какие таблицы есть.

#!/usr/bin/env perl
  
use XML::Generator::DBI;
use XML::SAX::Writer;
use DBI;
use DBD::SQLite::Constants qw/:file_open/;

my $dbh = DBI->connect("dbi:SQLite:dbname=$ARGV[0]","","",{ sqlite_open_flags => SQLITE_OPEN_READONLY}) || exit 1;

my $tbls = $dbh->selectall_arrayref("SELECT name FROM sqlite_master WHERE type='table' ORDER BY name");

my $mytable = $ARGV[1];
die join(" ",map {$_->[0]} @$tbls)."\n" if !$mytable;

my $sth = $dbh->prepare("select * from $mytable") || die ;
my $generator = XML::Generator::DBI->new(
                      Handler => XML::SAX::Writer->new());
$generator->execute($sth, $mycol_value);

vel ★★★★★ ()

Ну тут это, велосипед на велосипеде и велосипедом погоняет баше подъехал.
Может будет интересно, кастану на всякий. vel

#!/bin/bash
path=/home/name
table_f=$path/list_table.txt
func_GetCountTable () {
wc -w $table_f | awk '{print $1}'
}
func_GetAllTableName () {
perl $path/Programms/sqlite_to_xml.pl $path/1Cv8.lgd &> $table_f
}
func_GetAllTableName
count_table=$( func_GetCountTable )
echo $count_table
a=1
func_GetNameTable () {
awk '{print $'$a'}' $table_f
}
func_Action () {
perl $path/Programms/sqlite_to_xml.pl $path/1Cv8.lgd $( func_GetNameTable ) | tee $path/$( func_GetNameTable ).xml
}
####Дойдя до сюда, мы подсчитали актуальное количество таблиц в базе sqlite, и даже знаем их имена из файла
#Теперь мы просто подставляем имена таблиц в скрипт на perl, и он делает перевод в xml, ну и увеличиваем счетчик на +1
while [ $a -le $count_table ]; do
        func_Action
        sleep 20
        (( a++ ))
done
работает только долго, вижу perl медленно читает как-то.

Aborigen1020 ()