免责声明:我对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中所有行的不同?
答案 0 :(得分:1)
$ git diff --ignore-space-at-eol
修改的
为避免意外的换行,您可以将Git配置为使用core.autocrlf自动更改行结尾,或使用unix2dos
程序在sed
之后修复文件。