Sed删除影响文件

时间:2018-02-08 11:28:52

标签: bash git sed pom.xml

免责声明:我对sed的经验很少。

我试图通过使用bash脚本来自动执行一项有些繁琐的任务,其中一个步骤是从Maven pom.xml文件中删除一行,我试图这样做使用以下sed命令:

sed -i '/<module>'"${MODULE_NAME}"'<\/module>/d' ./pom.xml

似乎工作正常。问题是pom的所有行都受此影响,因为git diff调用显示已添加1,680行并删除了1,681行。

这显然是一种痛苦,因为它使代码审阅者很难发现一行差异。有没有办法让sed执行此删除而不影响文件中的其他行?

编辑:在IntelliJ中打开项目时,差异被正确识别为一行。此外,似乎sed已经改变了从CRLF到LF的换行风格(是的,我在Windows上)。这是否足以触发git中所有行的不同?

1 个答案:

答案 0 :(得分:1)

$ git diff --ignore-space-at-eol

修改

为避免意外的换行,您可以将Git配置为使用core.autocrlf自动更改行结尾,或使用unix2dos程序在sed之后修复文件。