入力ファイルAとBは次のようになります。
ファイルA
1 1 1
2 2 2
3 3 3
文書B
10 10 10
20 20 20
30 30 30
40 40 40
50 50 50
60 60 60
70 70 70
ファイルAの最初の行から最初の行から始めて、ファイルBの3行ごとにファイルAに1行を挿入し、出力は次のようになります。
1 1 1
10 10 10
20 20 20
30 30 30
2 2 2
40 40 40
50 50 50
60 60 60
3 3 3
70 70 70
最初は3行ごとに別々のファイルを作成しようとしましたが、データセットが非常に大きく、ハードドライブのスペースを節約することに興味がありました。
答え1
awkを使用する必要がない場合は、貼り付けを使用できます。
$ paste -d '\n' <fileB fileA - - - | tr -s '\n' >fileC
このtr
部分は必ずしも必要ではないので、追加の改行が気に入らない場合は削除できます。
答え2
良いケースのようですgetline
。
awk '(NR-1)%3 == 0 {getline line < "FileA"; print line} 1' FileB
1 1 1
10 10 10
20 20 20
30 30 30
2 2 2
40 40 40
50 50 50
60 60 60
3 3 3
70 70 70
答え3
GNU sedR
コマンドを使用してください。
sed -e $'R fileb\nR fileb\nR fileb' filea > output