这个 sed 命令如何工作?

这个 sed 命令如何工作?

我需要在两个文本片段之间打印文本。我找到了这样的例子,它完全符合我的要求,但我不明白它是如何做到的。谷歌搜索很困难,因为命令不包含字母)

sed -n '/hostname/,/$/p' /tmp/ambari-agent.ini

主机名=本地主机

据我了解,我在这里打印介于hostname行尾之间的文本。p选项将模式打印到输出中。但为什么这里有三个组,逗号在这里是什么意思?

答案1

你应该首先查看的是手册页。它们通常很难读懂,但信息就在那里。

从手册页中p Print the current pattern space.,它位于小节中Commands which accept address ranges。这很容易让您想到您正在使用正则表达式指定起始和终止地址范围,请参阅部分Addresses。因此/hostname/是开始,/$/是结束。$是一个标记行结束的特殊字符。

相关内容