![줄을 검색한 후 한 줄 번호에서 다른 줄 번호로 텍스트 파일을 인쇄합니다.](https://linux55.com/image/49333/%EC%A4%84%EC%9D%84%20%EA%B2%80%EC%83%89%ED%95%9C%20%ED%9B%84%20%ED%95%9C%20%EC%A4%84%20%EB%B2%88%ED%98%B8%EC%97%90%EC%84%9C%20%EB%8B%A4%EB%A5%B8%20%EC%A4%84%20%EB%B2%88%ED%98%B8%EB%A1%9C%20%ED%85%8D%EC%8A%A4%ED%8A%B8%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EC%9D%B8%EC%87%84%ED%95%A9%EB%8B%88%EB%8B%A4..png)
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