foo.txt ファイルとそのファイルで探したい正規表現があります。正規表現が見つかるたびに、別のファイルbar.txtから1行を取り、foo.txtで見つかった正規表現の一致に置き換えたいと思います。デフォルトでは検索/置換が必要ですが、置き換えるたびにbar.txtの次の行に次の代替テキストが表示されます。
これを実行できる単純なシェル魔法はありますか?
ベストアンサー1
私が正しく理解すれば、おそらく次のようになります。
awk '{getline repl < "second-file"; sub(/regexp/, repl); print}' < first-file
または、regexp
各行が複数回発生するか、まったく発生しない場合:
perl -pe 's/regexp/chomp($r=<STDIN>);$r/ge' first-file < second-file