sqlite で tsv 読み込むには .separator "\t"
してから .import allCountries.txt geonames
みたいにインポートするけれど、これだと各項目にダブルクオートが含まれてると項目数を誤認識してエラーになる。csvのセパレータ変えただけの仕様なので項目全体をダブルクオートで囲んで元のダブルクオートを二重にしておけばいいのだけれど、例(Shui-k"ou Kuan
→ "Shui-k""ou Kuan"
ダブルクオートをこのように使う言語もあるのだ Shui-k”ou Kuan) そのワンライナーは、
cat allCountries.txt | perl -pe 's/"/""/g;s/([^\t]*)/"$1"/g' > allCountries_escaped.txt