共通フィールドを持つ 2 つのファイルがあります。awk
Linuxコマンドで2つのファイルを共通フィールドでマージし、マージされたファイルを別のファイルに書き込みたいです。
ファイル1
412234$name1$value1$mark1
413233$raja$$mark2
414444$$$
ファイル2
412234$sum$file2$address$street
413233$sum2$file32$address2$street2$path
414444$$$$
これらのサンプル ファイルは で区切られ$
、マージされた出力ファイルも になります$
。また、これらの行には空のフィールドがあります。
を使用してスクリプトを試しましたjoin
:
join -t "$" out2.csv out1.csv |sort -un > file3.csv
しかし、合計数の不一致が発生しました。
で試しましたawk
:
myawk.awk
#!/usr/bin/awk -f
NR==FNR{a[FNR]=$0;next} {print a[FNR],$2,$3}
私はそれを実行しました
awk -f myawk.awk out2.csv out1.csv > file3.csv
また、時間がかかりすぎました。応答していない。
ここout2.csv
にマスターファイルがあり、比較する必要がありますout1.csv
マージされたファイルを別のファイルに書き込むのを手伝ってくれませんか?