小编Nat*_*iel的帖子

对每个文件运行一个命令,使用取决于文件名的标志参数

假设我有一个文件夹,其中包含名称如下的文件

file1.txt
file2.txt
file2.txt
Run Code Online (Sandbox Code Playgroud)

等我想对他们每个人运行一个命令,如下所示:

mycommand file1.txt -o file1-processed.txt
mycommand file2.txt -o file2-processed.txt
mycommand file3.txt -o file3-processed.txt
Run Code Online (Sandbox Code Playgroud)

等等。

这个网站上有几个类似的问题 - 不同的是我想将-processed测试插入文件名的中间,在扩展名之前。

它似乎find应该是这项工作的工具。如果不是为了-o国旗我可以做

find *.txt -exec mycommand "{}" ";"
Run Code Online (Sandbox Code Playgroud)

但是,{}语法给出了整个文件名,例如file1.txt等,所以我不能-processed在文件名及其扩展名之间添加“ ”。使用简单的 bashfor循环也存在类似的问题。

是否有一种简单的方法来完成此任务,使用find或以其他方式?

shell find

7
推荐指数
2
解决办法
3263
查看次数

标签 统计

find ×1

shell ×1