Если вы не хотите использовать именованные каналы, вы также можете:
zcat $YOURFILE.gz | sqlite3 $YOURDB.sqlite ".import /dev/stdin $TABLENAME"
Если вам нужно изменить вещи перед импортом, вы можете использовать perl
(или awk
, sed
, что угодно) между командами zcat и sqlite.
Например, если ваш файл уже использует символ канала в качестве разделителя и вы хотите импортировать только столбцы с 0 по 3 и с 5 по 6:
zcat $YOURFILE.gz | perl -F'\|' -anle 'print join("|", @F[0..3,5..6])' | sqlite3 $YOURDB.sqlite ".import /dev/stdin $TABLENAME"