【发布时间】:2019-11-16 04:03:11
【问题描述】:
我想使用 sed 从 c 头文件中删除特定的 cmets '//'。 我不明白为什么将 $ 放在最后不起作用。请建议。 请看下面的代码。
sed -i -e 's,\\(^//\\)\\(#undef TEST_FIRMWARE$\\),\2,' ./XX_HEADER.h
如果我在最后删除 $ 函数可以工作,但是当我放置 $ 时它不会。我想了解原因。
【问题讨论】:
-
尝试检查这些行是否有肉眼看不到的字符,如空格、dos 样式的行尾等。您可以使用
cat -tE或cat -A来检查 -
当 Wiktor Stribiżew 添加四个前导空格以重新格式化您的
sed时,编辑也应该将每个“\\”更改为“\”;我尝试进一步编辑您的帖子,但这对于 SO 来说太小了,无法接受;您能否进行编辑以修复sed命令?谢谢