
複数のファイルを生成するには filename.ext が必要で、ファイルを置くディレクトリ名も必要なツールがあります。私の場合は filename/ です。
ディレクトリ:
ファイル名1.ext
ファイル名2.ext
cmd ファイル名1.ext ファイル名cmd
ファイル名2.ext ファイル名2
findでこの問題を解決しようとしてきましたが、より良い方法がありますか?
find . -iname "*.ext" -exec cmd ... ?
答え1
解決策を見つけましたが、それが最適かどうかはわかりません。
find -iname "*.ext" -exec bash -c 'cmd "$1" "${1%.*}"' bash {} \;
cmd filename.ext filename
一致する各ファイルが呼び出されます。
ilkkachuのコメントに基づいてソリューションが更新されました。ありがとうございます!
答え2
<filename.ext>の拡張子が何であるかを知っている場合は、試してください。
for i in *.ext; do cmd "$i" "$(basename -s .ext "$i")"; done