file2
不明な数の列を含む2番目の列をに追加して、file1
この列が最後の列になるようにしますfile1
。このために、aと2番目の列だけをfile3
貼り付けて組み合わせを作ってみました。file1
file2
file1
:
col11 col12 col13 ... col1n
file2
:
col21 col22 col23 ... col2m
新しいfile1
またはfile3
:
col11 col12 ... col1n col22
私は次のコマンドを使用しています:
awk '{ print $0 > "file3"; getline<"file2"; print $2 > "file3" }' file1 &
ただし、col22 の引数は、新しいファイルの最後の列を形成する代わりにラップされます。
エラーを見つけて修正したり、より効率的なソリューションを見つけるのに役立つ人はいますか?
私のオペレーティングシステムはfedora12です。
ベストアンサー1
awk '{f1 = $0; getline<"file2"; print f1, $2}' < file1 > file3
出力ファイルには同じ数の行があるため、file1
最後の行の最後の列が短い場合は空になり、長い場合はfile2
最後の値は無視されます。file2
またはCostasが提案したように:
awk '{getline f1 <"file1" ; print f1,$2}' < file2 > file3
ただし、それまではfile3
行数が等しくなりますfile2
。つまりfile2
、これより長いと、列の順序が影響を受けますfile1
。
そして:
awk '{print $2}' < file2 | paste file1 - > file3
file3
file1
合計で最大の行数と同じ数の行がありますfile2
。データは削除されませんが、上記のように最後の行が 。file2
より長い場合は、file1
最初/2番目の列のデータが含まれますfile3
。file2