有人能给我解释一下这个sed命令吗?

有人能给我解释一下这个sed命令吗?,sed,Sed,sed-n'/aaaa/{:a;n;/zzzz/b;p;ba}' 在这方面: echo“aaaa\nsometext\nzzz\n”| sed-n'/aaaa/{:a;n;/zzzz/b;p;ba}' 打印“sometext”,这是正确的,也是预期的,但我不理解语法,尽管我盯着sed备忘单看了一会儿 提前谢谢 sed将当前行读入其模式空间。通常,sed在处理当前行后打印图案空间。这可以通过选项-n禁用。因此,sed仅使用命令p输出其模式空间 只有当sed找到包含表达式aaaa的行时,它才会执行方

sed-n'/aaaa/{:a;n;/zzzz/b;p;ba}'

在这方面:

echo“aaaa\nsometext\nzzz\n”| sed-n'/aaaa/{:a;n;/zzzz/b;p;ba}'

打印“sometext”,这是正确的,也是预期的,但我不理解语法,尽管我盯着sed备忘单看了一会儿


提前谢谢

sed将当前行读入其模式空间。通常,sed在处理当前行后打印图案空间。这可以通过选项
-n
禁用。因此,sed仅使用命令
p
输出其模式空间

只有当sed找到包含表达式
aaaa
的行时,它才会执行方括号中的命令


:a
是一个名为
a
的标签,不起作用。使用命令
n
sed将下一行输入读入其模式空间<代码>aaaa在模式空间中被覆盖。如果模式空间现在包含表达式
zzzz
executecommand
b
,则分支到脚本末尾并结束执行。如果图案空间不包含表达式
zzzz
执行
p
(打印图案空间)并执行命令
ba
(跳到标签
a
)。然后再次使用命令
n

欢迎使用StackOverflow。不幸的是,这既不是免费的咨询/设计/编码或调试服务,也不是教程网站或web搜索的替代品。我们可以帮助解决这个问题,但你首先要做的是解决这个问题,包括初等*Hm。在我的mingw控制台中对我不起作用。在web搜索中,应该有成千上万个示例,介绍如何使用
sed
命令以及如何解释示例中的替换字符串。它对我有效。我将上面的内容复制并粘贴到bash或zsh shell中,它就可以工作了。基本上,你需要问一个问题,而你没有这样做。因此,尽可能提供完整的背景和完整的问题。但是在你做任何事情之前,看看是否有其他人遇到了同样的问题。也许,“sed是如何工作的”?诸如此类。这里有一个叫做文档的部分,您可能会发现它非常有用: