我需要使用 sed 来注释掉文本文件中的两行
I need to use sed to comment out two lines in a text file
我是 运行 自定义内核构建并在 bash 脚本中创建了自定义配置文件,现在我需要在 Kbuild 中注释掉两行以防止 bc 编译器运行。线条是...
$(obj)/$(timeconst-file): kernel/time/timeconst.bc FORCE
$(call filechk,gentimeconst)
使用 Expresso,我有一个匹配第一行的正则表达式...
^$\(obj\)\/$\(timeconst-file\): kernel\/time\/timeconst\.bc FORCE
但无法让 sed 在行前实际插入 #。
如有任何帮助,我们将不胜感激。
您可以使用以下sed 进行替换:
sed 's,^\($(obj)/$(timeconst-file): kernel/time/timeconst.bc FORCE\),#,'
您不需要转义 (
)
或 $
,因为在没有 -r
的 sed 中它被视为文字,用于分组 \(
\)
被使用。
sed -i "/<Something that matches the lines to be replaced>/s/^#*/#/g"
这使用正则表达式 select 您要评论的行 /<something>/
,然后替换 /s/
字符串的开头 ^
(加上任何 #*
已经在那里,#
。所以你可以评论已经评论过的行没问题。/g
意味着在你找到第一个匹配项后继续,所以你可以进行大量评论。
我有一个 bash 脚本,我可以使用上面的脚本进行群发评论:
sed -i.bkp "//s/^#\+\s*//g"
i.bkp
备份名为 .bkp
的文件
脚本被调用./comment.sh <match> <filename>
匹配不必匹配整行,只匹配你想要的行即可。
我是 运行 自定义内核构建并在 bash 脚本中创建了自定义配置文件,现在我需要在 Kbuild 中注释掉两行以防止 bc 编译器运行。线条是...
$(obj)/$(timeconst-file): kernel/time/timeconst.bc FORCE
$(call filechk,gentimeconst)
使用 Expresso,我有一个匹配第一行的正则表达式...
^$\(obj\)\/$\(timeconst-file\): kernel\/time\/timeconst\.bc FORCE
但无法让 sed 在行前实际插入 #。
如有任何帮助,我们将不胜感激。
您可以使用以下sed 进行替换:
sed 's,^\($(obj)/$(timeconst-file): kernel/time/timeconst.bc FORCE\),#,'
您不需要转义 (
)
或 $
,因为在没有 -r
的 sed 中它被视为文字,用于分组 \(
\)
被使用。
sed -i "/<Something that matches the lines to be replaced>/s/^#*/#/g"
这使用正则表达式 select 您要评论的行 /<something>/
,然后替换 /s/
字符串的开头 ^
(加上任何 #*
已经在那里,#
。所以你可以评论已经评论过的行没问题。/g
意味着在你找到第一个匹配项后继续,所以你可以进行大量评论。
我有一个 bash 脚本,我可以使用上面的脚本进行群发评论:
sed -i.bkp "//s/^#\+\s*//g"
i.bkp
备份名为 .bkp
脚本被调用./comment.sh <match> <filename>
匹配不必匹配整行,只匹配你想要的行即可。