sed를 사용하여 패턴이 포함된 줄을 다른 파일의 내용으로 어떻게 바꿀 수 있습니까?

sed를 사용하여 패턴이 포함된 줄을 다른 파일의 내용으로 어떻게 바꿀 수 있습니까?

파일.txt 입력:

one fffds
two xxxx
three ffff
four ffde

데이터 파일.txt:

six
seven

two xxxx포함된 줄을 바꾸고 싶습니다 .파일.txt 입력내용이 있는데이터 파일.txt. 출력 파일은 다음과 같아야 합니다.

출력 파일.txt:

one fffds
six
seven
three ffff
four ffde

답변1

이것은 나에게 효과적입니다.

sed -n '
  /two xxxx/{
    rdata_file.txt
    d
  }
  p'

행이 표현식과 일치하면 파일 내용을 인쇄하고 다음 루프를 시작합니다. 그렇지 않으면 두 번째 명령이 호출되어 해당 행을 인쇄합니다.

Perl에서 비슷한 작업을 수행하기 위한 더 읽기 쉬운 솔루션:

perl -pe '/two xxxx/ and $_=`cat data_file.txt`'

관련 정보