sed 명령은 한 파일의 단어를 다른 파일의 전체 줄로 바꿉니다.

sed 명령은 한 파일의 단어를 다른 파일의 전체 줄로 바꿉니다.

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

관련 정보