linux找到多个-exec

时间:2017-05-07 01:10:32

标签: bash sed find exec

find . -iname "*.txt" -exec program '{}' \; | sed 's/Value= //'

- "程序"为每个文件返回不同的值,输出前缀为"Value= "

此时输出为"Value= 128",之后仅为128

如何仅使用值"128"并将输入文件重命名为128。txt 但也有这个发现运行思想多个文件。

抱歉描述不好。 我会尽力清除

1 个答案:

答案 0 :(得分:0)

首先编写一个能够重命名参数的shell脚本:

mv "$1" "$(program "$1" | sed "s/Value= //").txt"

然后将该脚本嵌入到find命令中:

find . -iname "*.txt" \
    -exec sh -c 'mv "$1" "$(program "$1" | sed "s/Value= //").txt"' _ {} \;