それぞれ1列の2つのファイルがあります
1
2
3
と
4
5
6
両方の要素を持つ一意のファイルを次のように書き込みたい
1 4
2 5
3 6
awkで考えると、本当にシンプルなはずです。
あなたは試すことができpaste -d ' ' <file1> <file2>
ます。(-d ' '
区切り文字がないとタブになります。)
paste
与えられた例では問題なく動作しますが、可変長の行をうまく処理できません。あまり知られていない素敵な core-utilpr
は、より柔軟なソリューションを提供します。
$ pr -mtw 4 file1 file2
1 4
2 5
3 6
可変長の例:
$ pr -mtw 22 file1 file2
10 4
200 5
300,000,00 6
そして、あなたがここで尋ねたので、awk
1つの方法です:
$ awk '{a[FNR]=a[FNR]$0" "}END{for(i=1;i<=length(a);i++)print a[i]}' file1 file2
1 4
2 5
3 6
使用するawk
awk 'NR==FNR { a[FNR]=$0;next } { print a[FNR],$0 }' file{1,2}
NR==FNR
最初のアクション ステートメントが最初のファイルに対してのみ実行されるようにします。a[FNR]=$0
これにより、行番号でインデックス付けされた配列に最初のファイルを挿入します