Bashでは、最初のcsvファイル、2番目のcsvファイルのすべての行、3番目のcsvファイルの回答を要求する必要があります。
最初のファイル。例えばaaa.csv
:
aaa
bbb
aaa
aaa
ccc
fff
aaa
2番目のファイルは次のとおりですbbb.csv
。
aaa;111
bbb;222
ccc;333
ddd;444
eee;555
ggg;666
3番目のファイルは次のとおりですccc.csv
。
aaa;111
bbb;222
aaa;111
aaa;111
ccc;333
fff;
aaa;111
可能ですか?この間に間違った言葉や何かがあるかもしれません。 thenを使用すると、cat bbb.csv | grep -f aaa.csv > ccc.csv
111にaaaが表示されたときにのみ部分的に共通であると答えます。aaa.csv
ベストアンサー1
注釈の別の可能なアプローチは、変更されたawk
ファイル順序を使用することができる。
awk -F';' 'FNR == NR { m[$1] = $2; next; } { if ($1 in m) { print $1 ";" m[$1]; } else { print $1 ";FALSE"; } }' bbb aaa
まず、bbbファイルを読み取り、最初の列のキー値を含む配列に値を保存し、aaaファイルを読み取り、キーが配列にあることを確認し、それに応じて印刷します。
結果:
aaa;111
bbb;222
aaa;111
aaa;111
ccc;333
fff;FALSE
aaa;111