如何在Linux命令行中替换具有不同层次结构的多个文件夹中的多个文件中的字符串

如何在Linux命令行中替换具有不同层次结构的多个文件夹中的多个文件中的字符串

我有许多扩展名的文件*.launch分布在父目录内的不同文件夹中,文件的层次结构并不总是相同的.launch。即:src/folder/sth.launchsrc/folder2/../../another.launch,所以这个解决方案在这里不起作用!

如何使用 Linux 命令将不同文件夹和级别的所有这些文件中的字符串替换xarco.py为另一个字符串?提前致谢。xarco*launch

答案1

在父目录中,您可以尝试以下命令,

find . -type f -name "*.launch" -exec echo sed -i 's/xarco.py/xarco/g' {} \;

如果“看起来不错”,就把它拿掉echo,做真正的工作,

find . -type f -name "*.launch" -exec sed -i 's/xarco.py/xarco/g' {} \;

如果权限存在问题,您可能需要在前面加上sudo

sudo find ...

相关内容