我需要在两个文本片段之间打印文本。我找到了这样的例子,它完全符合我的要求,但我不明白它是如何做到的。谷歌搜索很困难,因为命令不包含字母)
sed -n '/hostname/,/$/p' /tmp/ambari-agent.ini
主机名=本地主机
据我了解,我在这里打印介于hostname
行尾之间的文本。p
选项将模式打印到输出中。但为什么这里有三个组,逗号在这里是什么意思?
答案1
你应该首先查看的是手册页。它们通常很难读懂,但信息就在那里。
从手册页中p Print the current pattern space.
,它位于小节中Commands which accept address ranges
。这很容易让您想到您正在使用正则表达式指定起始和终止地址范围,请参阅部分Addresses
。因此/hostname/
是开始,/$/
是结束。$
是一个标记行结束的特殊字符。