regex - SED:为什么替换不能使用 $ 来指示行尾
问题描述
我想使用 sed 从 c 头文件中删除特定的注释“//”。我不明白为什么将 $ 放在最后不起作用。请建议。请看下面的代码。
sed -i -e 's,\\(^//\\)\\(#undef TEST_FIRMWARE$\\),\2,' ./XX_HEADER.h
如果我在最后删除 $ 函数可以工作,但是当我放置 $ 时它不会。我想了解原因。
解决方案
我怀疑捕获组内的元字符的开头和结尾。尝试:
sed -i -e 's,^\(//\)\(#undef TEST_FIRMWARE\)$,\2,' ./XX_HEADER.h
我sed
的sed
.
推荐阅读
- java - ColdFusion 的 RegEx 引擎最近的行为变化?
- java - AndroidX 测试 - ActivityScenario API 立即销毁活动
- javascript - jQuery AJAX - $.each 用正确的数据重复 html 结构?
- php - 没有键索引的 Array_push()
- html - 创建一个 VSCode 片段以“大写”占位符制表位内的重复制表位
- excel - 在 Excel 工作表中构建折线图
- r - 您如何找到跨越多列的唯一值的数量?
- powershell - powershell破坏脚本中的特殊字符?
- azure - 从 Azure Data Lake Storage 复制文件
- blazor - Blazor 应用加载 boostrap-dark.css 文件两次