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

Sed deletion affecting all lines in file

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

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

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

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

这显然很痛苦,因为它让代码审查者很难发现一行 difference.Is 有没有办法让 sed 执行此删除操作而不影响文件中的其他行?

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

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

编辑

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