Вы можете использовать команду sqlite3 .dump
для вывода вывода дампа в другой db. Он принимает необязательный аргумент с именем таблицы.
db1=~/mydb1.sqlite
db2=~/mydb2.sqlite
t=t2
sqlite3 "$db2" ".dump $t" | sqlite3 "$db1"
Если у вас нет общих таблиц в обеих базах данных, вы можете оставить имя таблицы и скопировать все таблицы.
Если таблицы большие, это может быть медленным, потому что это сделает INSERT. Если они огромны, и это действительно слишком медленно, возможно, .import
будет быстрее. Вы можете попробовать что-то вроде
sqlite3 "$db2" ".schema $t" | sqlite3 "$db1"
sqlite3 "$db2" "SELECT * FROM $t" | sqlite3 "$db1" ".import /dev/stdin $t"
Это будет верно для любой строки, которая начинается с «name =» и заканчивается «.doc»
^name=.*\.doc$
Вы можете добавить модификатор (?i)
в начале, чтобы соответствовать как верхнему, так и нижнему регистр и добавить другие расширения, как это
(i?)^name=.*\.(doc|xls|ppt)$