PDF 파일에서 여러 줄 패턴의 페이지 번호를 찾았습니다.PDF 파일과 텍스트 파일에서 여러 줄 패턴을 찾는 방법은 무엇입니까?그리고 PDF 파일에서 문자열을 검색하고 해당 문자열이 나타나는 각 페이지의 실제 페이지 번호를 찾는 방법은 무엇입니까?
$ pdfgrep -Pn '(?s)image\s+?not\s+?available' main_text.pdf
49: image
not
available
51: image
not
available
53: image
not
available
54: image
not
available
55: image
not
available
페이지 번호를 추출하고 싶지만 패턴이 여러 줄이므로
$ pdfgrep -Pn '(?s)image\s+?not\s+?available' main_text.pdf | awk -F":" '{print $1}'
49
not
available
51
not
available
53
not
available
54
not
available
55
not
available
바꾸다
49
51
53
54
55
패턴이 여러 줄인지 상관없이 페이지 번호만 추출하는 방법을 알고 싶습니다. 감사해요.
답변1
이것은 약간 해킹적이지만 이미 Perl 호환 RE를 사용하고 있으므로 \K
"왼쪽 유지" 수정자를 사용하여 표현식의 모든 항목(및 다음 줄이 끝나기 전의 모든 항목)을 일치시킬 수 있지만 제거할 수 있습니다. 출력에서 다음을 제외합니다.
pdfgrep -Pn '(?s)image\s+?not\s+?available.*?$\K' main_text.pdf
그러나 출력에는 여전히 :
구분 기호가 포함됩니다.
답변2
$0~":"
awk 인식기로 추가되었습니다 . 즉, 다음과 같은 줄을 얻습니다.
.... | awk -F":" '$0~":"{print $1}'
이렇게 하면 입력 줄에 ":"가 있는 경우에만 출력이 인쇄되고 다른 줄은 삭제됩니다.