2013-07-23 71 views
0

我没有以往的经验写一个剧本UNIX但我想似乎是一个简单的任务命令。我要的文件夹中运行此命令为所有PDF文件UNIX脚本,上运行多个文件

pdf2txt.py -o naacl06-shinyama.html samples/naacl06-shinyama.pdf 

,如果有一个名为anypdf.pdf命令会是什么样子文件:

pdf2txt.py -o anypdf.html samples/anypdf.pdf 

所以如果我的文件夹包括3个PDF文件一样,abc.pdf aaa.pdf bbb.pdf我要结束了与abc.html aaa.html和bbb.html

在此先感谢

回答

1
for pdf in samples/*.pdf; do 
    html=$(basename "$pdf" .pdf).html 
    pdf2txt.py -o "$html" "$pdf" 
done 

如果你没有basename那就试试这个替代方案,它使用bash的##%构建内联做替代品。

#!/bin/bash 

for pdf in samples/*.pdf; do 
    html=${pdf##*/}; 
    html=${html%.pdf}.html 
    pdf2txt.py -o "$html" "$pdf" 
done 
+0

感谢,但我得到一个(我相信)一个Python错误,如类型错误:()__init __得到了一个意想不到的关键字参数“OUTDIR” –

+0

@GorkemYurtseven检查它的运行'使用正确的参数pdf2txt.py'。该错误来自Python,而不是来自shell。 –

+0

谢谢我正在研究它 –