Command-Line
使用 find -exec 刪除文件副檔名
使用時
find
,如何-exec
大括號 ( ) 中刪除原始文件副檔名 (ie{}
)?例如:
find ~/Documents -regex 'LOGIC.*\.pdf' -exec pdf2svg {} {}.svg \;
輸入文件名:
~/Documents/LOGIC-P_OR_Q**.pdf**
輸出文件名:
~/Documents/LOGIC-P_OR_Q**.pdf.svg**
所需文件名:
~/Documents/LOGIC-P_OR_Q**.svg**
您可以使用“內聯”shell 腳本和參數擴展:
-exec sh -c 'pdf2svg "$1" "${1%.pdf}.svg"' sh {} \;
或(更有效,如果你
find
支持它)-exec sh -c 'for f; do pdf2svg "$f" "${f%.pdf}.svg"; done' sh {} +
一種方法是通過基本腳本執行結果 -
for i in $( find ~/Documents -regex 'LOGIC.*\.pdf' ) do o=$( echo $i | sed -e s/.pdf$// ) pdf2svg $i ${o}.svg done