sedコマンド(または動作する他のコマンド)を使用して、テンプレートファイルの単語を別のファイルの1行の単語に置き換えたいと思います。
たとえば、単語リストを含むファイルがあり、各単語は別の行にあります。 sedを使用して最初の単語(最初の行にあります)を取得し、「value1」と書きました。と関係があると思いました。これ投稿はできますが、わかりません。
伝説:
ファイルA:
Maria
Albert
Toni
Henry
Tom
ファイルB:
The name of the student is: value1
3行目の予想出力:
The name of the student is: Toni
名前の1つをファイルAからvalue1を持つファイルBに移動できるようにしたいです。これを何度もやりたいです。
ベストアンサー1
私は以下を使用しますperl
:
perl -ne '
BEGIN{
local $/ = undef;
$template = <STDIN>; # slurp file B in
}
chomp;
print $template =~ s/\bvalue1\b/$_/gr' fileA < fileB
バージョンがperl
古すぎて代替フラグをサポートできない場合は、r
一時変数を使用できます。
perl -ne '
BEGIN{
local $/ = undef;
$template = <STDIN>; # slurp file B in
}
chomp;
($out = $template) =~ s/\bvalue1\b/$_/g;
print $out' fileA < fileB