同じ行数を持つ2つのソートされたCSVファイルがあります。これら2つのCSVファイルを結合したいと思います。
1.csv
1,2,3
4,5,6
7,8,9
2.csv
10,11,12
13,14,15
16,17,18
result.csv
1,2,3,10,11,12
4,5,6,13,14,15
7,8,9,16,17,18
試しましたが、
cat 1.csv 2.csv >result.csv
参加する代わりに追加されます。
ベストアンサー1
場所paste
:
paste -d, {1,2}.txt
-d,
区切り記号を,
。に設定する{1,2}.txt
のは、シェルで実行される中かっこ拡張です1.txt 2.txt
。
あなたが少し好きならawk
:
awk 'NR==FNR {a[FNR]=$0; next} {print a[FNR], $0}' OFS=, {1,2}.txt
NR==FNR
最初のファイルにのみ適用されます。レコード番号をキーに、レコードを値として配列を{a[FNR]=$0; next}
生成します。a
2番目のファイルの場合は、
{print a[FNR], $0}
その行番号に配列要素を印刷し、その後にOFS=,
出力フィールド区切り文字を次のように設定します。,
例:
$ cat 1.txt
1,2,3
4,5,6
7,8,9
$ cat 2.txt
10,11,12
13,14,15
16,17,18
$ paste -d, {1,2}.txt
1,2,3,10,11,12
4,5,6,13,14,15
7,8,9,16,17,18
$ awk 'NR==FNR {a[FNR]=$0; next} {print a[FNR], $0}' OFS=, {1,2}.txt
1,2,3,10,11,12
4,5,6,13,14,15
7,8,9,16,17,18