您的要求有點含糊,但這裏有一些想法可能會對您有所幫助。
假設1的10個文件是
# static_part.dynamic_part_like_date.pdf
# SalesReport.20110416.pdf (YYYYMMDD)
而你只想要SalesReport.pdf轉化爲無擔保,你可以使用一個shell腳本來實現你的要求:
# make a file with the following contents,
# then make it executable with `chmod 755 pdfFixer.sh`
# the .../bin/bash has to be the first line the file.
$ cat pdfFixer.sh
#!/bin/bash
# call the script like $ pdfFixer.sh staticPart.*.pdf
# (not '$' char in your command, that is the cmd-line prompt in this example,
# yours may look different)
# use a variable to hold the password you want to use
pw=foopass
for file in ${@} ; do
# %%.* strips off everything after the first '.' char
unsecuredName=${file%%.*}.pdf
#your example : pdftk secured.pdf input_pw foopass output unsecured.pdf
#converts to
pdftk ${file} input_pw ${foopass} output ${unsecuredName}.pdf
done
您可能發現你需要修改%.*
東西到
- 從最後剝離(使用%。*)到剝下最後一個'。'和後面的所有字符(右起)。
- 從最前面(使用#*。)到僅留下靜態部分,從前面留下動態部分(使用## *。)剝離所有內容,直到最後一個「。」。焦炭。
你真的會更容易找出你需要在cmd行。 設置有1個樣本文件名
myTestFileName=staticPart.dynamicPart.pdf
一個變量,然後使用回聲與可變改性劑組合以查看結果。
echo ${myTestFileName##*.}
echo ${myTestFileName#*.}
echo ${myTestFileName##.*}
echo ${myTestFileName#.*}
echo ${myTestFileName%%.*}
等
還要注意我如何IHTH
我很抱歉,我沒有試過結合修改變量值與一個普通的字符串(.PDF),在
unsecuredName=${file%%.*}.pdf
你的解決方案另外我想要一行命令而不是shell腳本。感謝您的努力和答案。 – sgarg 2012-07-18 15:46:43