Sed删除影响文件中的所有行

问题描述 投票:1回答:1

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

我试图通过使用bash脚本来自动执行一项有点乏味的任务,其中一个步骤是从Maven pom.xml文件中删除一行,我正在尝试使用以下sed命令:

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

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

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

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

bash git sed pom.xml
1个回答
1
投票
$ git diff --ignore-space-at-eol

编辑

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

© www.soinside.com 2019 - 2024. All rights reserved.