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}'
これにより、入力行に「:」がある場合にのみ出力が印刷され、他の行は削除されます。