gpt4 book ai didi

linux - 使用 sed 命令在 [stuff] 之后追加行

转载 作者:太空狗 更新时间:2023-10-29 11:31:43 25 4
gpt4 key购买 nike

实际上,我试图在配置文件“testfile”中的节标题后直接插入一行文本,如下所示:

[default]

[stuff]

[stuff_test]

[end]

目标是直接在 [stuff] 之后且仅在 [stuff] 之后插入一行文本“variable = 1”。这是“测试文件”的期望输出

[default]

[stuff]
variable = 1

[stuff_test]

[end]

当我尝试使用 sed 的 append 功能时:

sed -i "/[stuff]/ a variable = 1" testfile

我得到以下信息:

[default]
variable = 1

[stuff]
variable = 1

[stuff_test]
variable = 1

[end]

我的问题是为什么它在前三个节中插入文本而不是像我预期的那样只在第二个节中插入文本?我尝试使用完全匹配,但我的上下文可能有误?已经尝试了以下其他努力:

sed -i "/\<[stuff]\>/ a variable = 1" testfile

sed "/\<\[stuff\]\>/ a variable = 1" testfile

这不会在文件中插入任何文本。如何让 sed 仅在“[stuff]”节之后插入?

最佳答案

地址/[stuff]/被解释为正则表达式,即匹配包含任何字符 s 的任何行, t , uf .为避免解释为括号表达式,您必须转义方括号:

sed -i "/\[stuff\]/ a variable = 1" testfile

关于linux - 使用 sed 命令在 [stuff] 之后追加行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37749418/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com