4

それぞれ1列の2つのファイルがあります

1
2
3

4
5
6

両方の要素を持つ一意のファイルを次のように書き込みたい

1 4
2 5
3 6

awkで考えると、本当にシンプルなはずです。

4

3 に答える 3

8

あなたは試すことができpaste -d ' ' <file1> <file2>ます。(-d ' '区切り文字がないとタブになります。)

于 2013-03-14T10:22:40.460 に答える
4

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

そして、あなたがここで尋ねたので、awk1つの方法です:

$ 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
于 2013-03-14T10:50:48.383 に答える
0

使用するawk

awk 'NR==FNR { a[FNR]=$0;next } { print a[FNR],$0 }' file{1,2}

説明:

  • NR==FNR最初のアクション ステートメントが最初のファイルに対してのみ実行されるようにします。
  • a[FNR]=$0これにより、行番号でインデックス付けされた配列に最初のファイルを挿入します
  • 最初のファイルが完成したら、2 番目のアクションに進みます
  • ここでは、最初のファイルの各行を 2 番目のファイルと共に出力します
于 2013-03-14T11:27:20.680 に答える