を使用すると、2番目の中かっこペア(つまり)から元のファイル拡張子をどのようにfind
削除しますか?.pdf
-exec
{}
たとえば、
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
答え1
「インライン」シェルスクリプトを使用できます。パラメータ拡張:
-exec sh -c 'pdf2svg "$1" "${1%.pdf}.svg"' sh {} \;
または(find
サポートするとより効率的です)
-exec sh -c 'for f; do pdf2svg "$f" "${f%.pdf}.svg"; done' sh {} +
答え2
1つの方法は、基本スクリプトを介して結果を実行することです。
for i in $( find ~/Documents -regex 'LOGIC.*\.pdf' )
do
o=$( echo $i | sed -e s/.pdf$// )
pdf2svg $i ${o}.svg
done