仅在 shell 脚本中使用查找命令匹配特定扩展名时出现问题



我想使用 shell 脚本和一些 perl 命令对目录中的 XML 文件列表进行一些更改。 这是perl命令的示例:

find "." -name "*.xml" | xargs perl -pi -e 's/s+/ /g' *

所有Perl命令都可以正常工作,但问题是,shell脚本甚至在自身上执行命令,换句话说,当我运行shell脚本时,perl命令会用所有其他XML文件更改shell脚本!! 注意:XML 文件和 Shell 脚本位于同一目录中,不应执行命令的以下部分:

find "." -name "*.xml" 

仅匹配具有 XML 扩展名的文件 !!

有什么建议吗?!

你有一个通配符,*,命令结束!

正如 Red Cricket 所指出的,你的命令末尾有一个*摆脱它

另外,我建议使用-execsed

find -name '*.xml' -exec sed 's/s+/ /g' {} ;

最新更新