我想使用 sed 命令(或其他有效的命令)将模板文件中的单词替换为另一个文件的一行中的单词。
举个例子,我有一个包含单词列表的文件,每个单词都在不同的行中,我想使用 sed 获取第一个单词(位于第一行)并将其放入另一个文件中,其中单词“value1 ”写道。我以为与这帖子我可以做到,但我无法弄清楚。
图例:
文件A:
Maria
Albert
Toni
Henry
Tom
文件B:
The name of the student is: value1
第 3 行的预期输出:
The name of the student is: Toni
我希望能够将其中一个名称从文件 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