find
用于{}
指示“此文件”(ish)。您可以将一系列文件输入到 中myprog
,因此:
find ./tests/ -name *.in -exec myprog -i {} \;
Run Code Online (Sandbox Code Playgroud)
有没有办法修改里面的名字{}
?就我而言,我用来-i
定义输入文件和-o
输出,并且我希望输出稍微修改一下文件名,这样“a.in”将生成“a.out”。理想情况下,我想要达到以下效果:
find ./tests/ -name *.in -exec myprog -i {} -o {}.out \;
Run Code Online (Sandbox Code Playgroud)
此外,输出目录可能是不同的路径。在这种情况下,输出可能不会到达,/tests/
但可能会到达/tests_20220615/
。
我已经查看了许多带有 示例的页面find
,但没有出现类似的情况,所以也许“不”?
我知道有一些方法可以在 bash 或 zsh 中使用循环来做到这一点,但是可能的陷阱列表很棒(“nullglob”?!),如果find
可以做到这一点,那么对于这个菜鸟来说似乎更安全。
find ×1