pdfgrepの内容をperlワンライナーでtable化する
pdfgrepで検索すると、文字列がヒットした行は、「ファイル名:本文」
その周辺行は「ファイル名-本文」と表示されるようだった。
- Cオプションで周辺行の行数を指定できる。
正規表現でファイル名部分と、本文部分をグループで分けて、ファイル名部分(グループ1)が変わったタイミングでファイル名の列部分をグループ1から出力するようにした。
本文の列はグループ2から出力するようにしました。
pdfgrep --cache -m 1 -C 3 増配 *.pdf 2> /dev/null | perl -nle 'BEGIN{$f="";print "<table border=1>";} {if ($_ =~ /(.*?)\.pdf[:-](.*)/) { if ($f != $1){ if ($f != ""){print "</td></tr>"} print "<tr><td>" . $1 . "</td><td>"; $f=$1;} print $2; } }' > result.html