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