PDFでテキストを検索するために、オンラインで次のコマンドを見つけました。
find . -name '*.pdf' -exec sh -c 'pdftotext "{}" - | grep --with-filename --label="{}" --color "your pattern"' \;
スクリプトで自動化したいので、スクリプトファイルsearch_pdf.shに書きました。
#!/bin/bash
echo $1
find . -name '*.pdf' -exec sh -c 'pdftotext "{}" - | grep --with-filename --label="{}" --color "$1"' \;
スクリプトにはいくつかのバグがあり、期待どおりに動作しません。誰でも私を助けることができますか?
ベストアンサー1
$1
スクリプトをエクスポートしてみてください。
#!/usr/bin/env bash
pattern=$1
export pattern
find . -name '*.pdf' -exec sh -c 'pdftotext "{}" - | grep --with-filename --label="{}" --color "$pattern"' \;
しかし、私はそれを次のように書き直すことをお勧めします
#!/usr/bin/env bash
pattern=$1
export pattern
find . -name '*.pdf' -exec sh -c 'for f; do
pdftotext "$f" - | grep --with-filename --color "$pattern"
done' _ {} +
おそらく追加する--label=$pattern
こともできます