파일이 있다고 가정 해 봅시다
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