首页 > 解决方案 > SED:为什么替换不能使用 $ 来指示行尾

问题描述

我想使用 sed 从 c 头文件中删除特定的注释“//”。我不明白为什么将 $ 放在最后不起作用。请建议。请看下面的代码。

sed -i -e 's,\\(^//\\)\\(#undef TEST_FIRMWARE$\\),\2,' ./XX_HEADER.h

如果我在最后删除 $ 函数可以工作,但是当我放置 $ 时它不会。我想了解原因。

标签: regexsed

解决方案


我怀疑捕获组内的元字符的开头和结尾。尝试:

sed -i -e 's,^\(//\)\(#undef TEST_FIRMWARE\)$,\2,' ./XX_HEADER.h

sedsed.


推荐阅读