假设我有一个文件夹,其中包含名称如下的文件
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
或以其他方式?