줄을 검색한 후 한 줄 번호에서 다른 줄 번호로 텍스트 파일을 인쇄합니다.

줄을 검색한 후 한 줄 번호에서 다른 줄 번호로 텍스트 파일을 인쇄합니다.

X줄 번호 부터 Y줄 번호 까지 텍스트 파일을 인쇄하고 싶습니다.

X&의 값은 Y텍스트 파일에서 특정 줄(이 경우 페이지 번호)을 검색하여 결정됩니다.

다음 명령으로 줄을 검색했습니다.

echo -n |grep -nr "Page # 2" FileName.txt |cut -f1 -d: ; echo -n |grep -nr "Page # 3" FileName.txt |cut -f1 -d:

이를 위해 나는 출력을 얻었습니다.

67

128

이 출력을 다음 명령에 공급하고 싶습니다.

sed -n 'X,Yp' FileName.txt

sed하지만 나는 그것들을 두 개의 다른 줄로 취급하고 있습니다. 어떻게 명령 에 제공할 수 있습니까?

lp나중에 위 명령의 결과를 다음과 같이 제공하고 싶습니다 .

sed -n 'X,Yp' FileName.txt | lp -dmyprinter

파일을 만들지 않고도 이 작업을 수행할 수 있습니까?

답변1

경로를 미리 파악하기 위해 2단계가 필요하지 않습니다. 전체 작업을 완료하려면 다음 명령을 사용하십시오 sed.

sed '/Page # 2/,/Page # 3/!d' < FileName.txt

답변2

다음과 같은 변수를 사용하여 값을 유지해 보세요.

FROM_LINE=`echo -n |grep -nr "Page # 2" FileName.txt |cut -f1 -d: `
TO_LINE=`echo -n |grep -nr "Page # 3" FileName.txt |cut -f1 -d:`

그런 다음 sed와 함께 다음 변수를 사용하십시오.

sed -en "${FROM_LINE},${TO_LINE}p" FILE

관련 정보