3

我正在尝试运行以下命令从所有 pdf 中提取文本

find *.pdf | awk '{system("pdftotext "$0)}'

但是该死的一些疯狂的人在文件名中添加了空格,我该如何顺利处理呢?

4

1 回答 1

2

awk 在其中的作用是什么?也许你应该让find事情自己执行。

find . -name \*.pdf -exec /path/to/pdftotext {} \;

或者,如果您真的坚持假设文件名作为标准输出可以安全地找到(您已经证明它们不仅仅是通过提出这个问题),那么将文件名放在引号中。这将起作用:

find . -name \*.pdf -print | awk '{cmd=sprintf("pdftotext \"%s\"", $0);system(cmd);}'
于 2012-06-18T18:19:49.200 回答