sed 명령은 파일에 있는 특정 단어로 시작하고 끝나는 모든 줄을 인쇄합니다.

sed 명령은 파일에 있는 특정 단어로 시작하고 끝나는 모든 줄을 인쇄합니다.

파일이 있다고 가정 해 봅시다

File1은 두 단어로 구성됩니다.

파일 1: 종이 팀

이제 PAPER라는 단어에서 시작하여 Team이라는 단어로 끝나는 파일 M의 모든 줄을 인쇄해야 합니다.

두 단어 사이를 인쇄하는 sed 명령은 다음과 같습니다. sed -n "/PAPER/,/TEAM/p" file2

그런데 지금은 내가 단어를 직접 주는데 매번 단어를 확인해서 file1다른 단어에서 시작해서 다른 단어로 끝나는 줄을 모두 잡아야 하는 상황이다 file2.

답변1

while read -r first second ; do 
    sed -n "/${first//\//\\\/}/,/${second//\//\\\/}/p" file2 ; 
done < file1

${first//\//\\\/}가능한 /기호를 이스케이프 시퀀스로 바꾸는 데 사용 됩니다 \/. 그렇지 않으면 구조가 깨질 수 있습니다.

file1에 기호가 없다고 확신하는 경우 에는 and를 /사용할 수 있습니다 .$first$second

관련 정보