find -execを使ってファイル拡張子を削除します。

find -execを使ってファイル拡張子を削除します。

を使用すると、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 {} +

おすすめ記事