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
之后的文件。
免责声明:我对 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
之后的文件。