2012-06-18 107 views
3

我試圖運行下面從所有的PDF文件中提取文本awk的系統命令

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

但宕它的一些瘋狂的人把空間中的文件名,我該怎麼處理這順利?

+1

拍瘋狂的人 –

回答

3

awk在這方面的作用是什麼?也許你應該讓find本身執行的東西。

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

或者,如果你真的堅持與假設的文件名會是安全的stdout找到(你已經證明了他們不是簡單地問這個問題)的時候,然後把文件名中的報價。這將工作:

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

大滿貫的額頭,這是簡單的,感謝ghoti – knk