以下を実行して、すべてのpdfからテキストを抽出しようとしています
find *.pdf | awk '{system("pdftotext "$0)}'
しかし、クレイジーな人がファイル名にスペースを入れてしまったのですが、どうすればこれをスムーズに処理できますか?
以下を実行して、すべてのpdfからテキストを抽出しようとしています
find *.pdf | awk '{system("pdftotext "$0)}'
しかし、クレイジーな人がファイル名にスペースを入れてしまったのですが、どうすればこれをスムーズに処理できますか?
これにおける awk の役割は何ですか? find
おそらく、物事自体を実行させる必要があります。
find . -name \*.pdf -exec /path/to/pdftotext {} \;
または、ファイル名が標準出力として安全であると仮定することに本当にこだわっている場合(単にこの質問をするだけではないことが証明されています)、ファイル名を引用符で囲みます。これはうまくいきます:
find . -name \*.pdf -print | awk '{cmd=sprintf("pdftotext \"%s\"", $0);system(cmd);}'