そのようなファイルが2つあります。
ファイル1
line 1
line 2
... (more lines)
aaa PLACEHOLDER bbb ccc
... (more lines)
ddd PLACEHOLDER eee fff
... (more lines)
etc
ファイル2
NEWTEXT1
NEWTEXT2
... (more lines)
file2 の NEWTEXT 文字列の数は、常に file1 の PLACEHOLDER を含む行数と同じです。 PLACEHOLDER 文字列が file1 のどの行にあるかはわかりません。PLACEHOLDER 文字列の数は、file1 および file2 ファイルセットごとに異なる場合があります。
各PLACEHOLDERをファイル2の対応する文字列に置き換えたいと思います。したがって、この例では、新しいファイルは次のようになります。
line 1
line 2
... (more lines)
aaa NEWTEXT1 bbb ccc
... (more lines)
ddd NEWTEXT2 eee fff
... (more lines)
etc
sedを使用してこれを達成できますか?ありがとうございます。
ベストアンサー1
私は以下を使用しますperl
:
perl -pe '
s{PLACEHOLDER}{
$replacement = <STDIN>;
chomp $replacement;
$replacement
}ge' file1 < file2
PLACEHOLDER
また、1行に複数回交換できます。