たとえば、次の2つのファイルがあります。
ファイル1:
1
4
X
5
X
7
ファイル2:
2
3
5
X
X
1
X
file1の-linesをfile2の対応する行の内容に置き換えたいと思います。
結果:
1
4
5
5
X
7
私は同じCLIコマンドを使用するソリューションを好みますsed
。
ベストアンサー1
file2 がメモリに収まる場合、awk を使用できます。まず、file2 を読み込み、次に file1 の処理中に「X」が表示された場合は、file2 配列でそのファイルを置き換えます。
$ awk 'NR == FNR { lines[NR]=$0; } NR != FNR { if ($0 == "X") print lines[FNR]; else print $0 }' file2 file1
再フォーマットすると、次のようになります。
$ awk 'NR == FNR { lines[NR]=$0; }
NR != FNR { if ($0 == "X") print lines[FNR];
else print $0
}' file2 file1
file2 は最初のファイル名、file1 は 2 番目のファイル名です。