2つのCSVファイルがあり、2番目のファイルの3番目の列と一致する最初のファイルの最初の列に基づいてマージしようとしています。その行はソートされません。
ファイル1.csv:
android,1,2
osx,2,5
ファイル2.csv:
Converting,:Developer::|[E],android,Exact,,,,8,31
Converting,:Developer::|[E],osx,Exact,,,,8,31
Converting,:Developer::|[E],windows,Exact,,,,8,31
そして、次のようになりたい出力.csv:
Converting,:Developer::|[E],android,Exact,,,,8,31,1,2
Converting,:Developer::|[E],osx,Exact,,,,8,31,2,5
Converting,:Developer::|[E],windows,Exact,,,,8,31,,
私はすべての例を試しました
awk -F',' 'FNR==NR.....
ここで見つけることができますが、正しく見つけることができないようです。
ベストアンサー1
join
あなたはこれを使うことができます
join -1 1 -2 3 -t ',' -a 2 -o 2.{1..9} 1.{2..3} <(sort file1.csv) <(sort file2.csv)
-1
-2
比較するファイルのフィールドを指定します。一致しない行を印刷する
-t
フィールドに使用する区切り文字を指定します。
-a 2
<file2>
-o
<file>.<field>