PDFファイルで複数行パターンのページ番号を見つけるには PDFファイルとテキストファイルで複数行パターンをgrepするにはどうすればよいですか? および 検索するにはどうすればよいですか?) 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
パターンが複数行であるかどうかに関係なく、ページ番号のみを抽出するにはどうすればよいのでしょうか。ありがとう。
少しハッキーですが、すでにPerl互換のREを使用しているため、\K
"keep left"修飾子を使用して、式のすべて(および次の行末まで)に一致させることができますが、出力:
pdfgrep -Pn '(?s)image\s+?not\s+?available.*?$\K' main_text.pdf
ただし、出力には引き続き:
セパレータが含まれます。
追加 $0~":"
awkレコグナイザーとして。つまり、次の行が表示されます。
.... | awk -F":" '$0~":"{print $1}'
これにより、入力行に「:」が含まれている場合にのみ印刷され、他の行は破棄されます。