繁体   English   中英

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

[英]How do I change the suffix of all files that contain a specific string

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

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

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

但我不清楚如何将其传输到将执行所需重命名的 mv 命令中。

灵感来自于@betabandido 修改 xargs 中的替换字符串

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM