2017-05-07 71 views
2

find . -iname "*.txt" -exec program '{}' \; | sed 's/Value= //'linux下找到多个-exec

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

此时输出将"Value= 128"和之后的sed只是128

我该如何取值"128"并将输入文件重命名为128 .txt ,但也有这个发现运行思想多个文件。

对不好的描述感到抱歉。 我会尽量清楚,如果需要

回答

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"' _ {} \;