如何更改包含特定字符串的所有文件的后缀

时间:2019-12-23 02:15:33

标签: linux grep find

我想找到所有具有特定DOCTYPE的* .xml文件,并将后缀从.xml更改为.dita。

我可以列出执行此操作的文件

find . -type f -name '*.xml' -exec grep --files-with-matches '<!DOCTYPE concept PUBLIC "-//OASIS//DTD DITA' {} +

但是我不清楚将其用管道传输到可以执行所需重命名的mv命令中。

1 个答案:

答案 0 :(得分:0)

由@betabandido的Modifying replace string in xargs启发:

尝试添加| xargs -n 1 -i sh -c 'echo mv $1 ${1%.xml}.dita' -- {},如果输出看起来不错,请删除echo,并假设sh实际上是bash,因为它被标记为linux