awk系统命令,参数中包含空格

时间:2012-06-18 18:10:39

标签: awk

我正在尝试运行以下内容以从所有pdfs中提取文本

find *.pdf | awk '{system("pdftotext "$0)}'
但是,有些疯狂的人在文件名中加了空格,我怎么能顺利处理呢?

1 个答案:

答案 0 :(得分:3)

awk在这方面的作用是什么?也许你应该让find自己执行。

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

或者如果你真的坚持假设文件名是安全的stdout来找到(你已经证明他们不是简单地通过询问这个问题),那么把文件名放在引号中。这将有效:

find . -name \*.pdf -print | awk '{cmd=sprintf("pdftotext \"%s\"", $0);system(cmd);}'