如何对一堆文件执行cmd,其中需要的参数是和

如何对一堆文件执行cmd,其中需要的参数是和

我有一个工具,需要一个 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

相关内容