我正在尝试运行以下内容以从所有pdfs中提取文本
find *.pdf | awk '{system("pdftotext "$0)}'
但是,有些疯狂的人在文件名中加了空格,我怎么能顺利处理呢?
答案 0 :(得分:3)
awk在这方面的作用是什么?也许你应该让find
自己执行。
find . -name \*.pdf -exec /path/to/pdftotext {} \;
或者如果你真的坚持假设文件名是安全的stdout来找到(你已经证明他们不是简单地通过询问这个问题),那么把文件名放在引号中。这将有效:
find . -name \*.pdf -print | awk '{cmd=sprintf("pdftotext \"%s\"", $0);system(cmd);}'