我想使用 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 所指出的,你的命令末尾有一个*
,摆脱它。
另外,我建议使用-exec
和sed
:
find -name '*.xml' -exec sed 's/s+/ /g' {} ;