我正在运行一个自定义内核构建,并在bash脚本中创建了一个自定义配置文件,现在我需要在Kbuild中注解掉两行,以防止bc编译器运行。台词是...
$(obj)/$(timeconst-file): kernel/time/timeconst.bc FORCE
$(call filechk,gentimeconst)
字符串
使用Expresso,我有一个正则表达式匹配第一行...
^\$\(obj\)\/\$\(timeconst-file\): kernel\/time\/timeconst\.bc FORCE
型
Regex Match
但无法让sed在该行前面插入一个#。
如果你能帮忙的话,我将不胜感激。
2条答案
按热度按时间atmip9wb1#
第一个月
它使用正则表达式来选择要注解
/<something>/
的行,然后用#
替换/s/
作为字符串^
的开头(加上已经存在的任何#*
)。所以你可以注解那些已经注解过的行,这没问题。/g
表示找到第一个匹配项后继续,因此您可以进行大量评论。我有一个bash脚本,我可以使用上面的大规模评论:
sed -i.bkp "/$1/s/^#\+\s*//g" $2
i.bkp
备份名为.bkp的文件脚本名为
./comment.sh <match> <filename>
匹配不需要匹配整行,只需要匹配到您想要的行即可。
gcuhipw92#
您可以使用以下sed进行替换:
字符串
您不需要转义
(
)
或$
,因为在没有-r
的sed中,它被视为文字,因为分组使用\(
\)
。