小编Mau*_*itz的帖子

你可以在“查找”过程中修改文件名吗

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

2
推荐指数
1
解决办法
436
查看次数

标签 统计

find ×1