1,200万行のファイルがあり、各行は8つの部分に分かれており、すべて「;」で区切られています。ファイル1の例:
AAA;BBB;CCC;DDD;EEE;FFF;GGGXX;HHH
各行には一意のIDがあり、コストは$ 7です。次のように、約20,000の一意のIDを一覧表示する別のファイル(File2)があります。
GGGXX; GGGXY; GGGXZ;
誰でも自分だけのルートがあります。
File1の完全なデータ行を含むFile2のIDに基づいて新しいファイルを生成するには、結果が必要です。
以下のコードを使用すると、File2に複数の項目がある場合は機能しないようです。
awk -F ";" 'NR==FNR{a[$1]} ($7 in a){print}' File2.txt File1.txt
File2にIDがリストされる方法に問題があるのでしょうか、それとも私が間違っているのでしょうか?
答え1
希望の出力を取得するには、次のコマンドを使用します。
awk -F "," 'NR==FNR {a[$7];next}($1 in a){print $1}' file1 file2 > newfile