我正在尝试从 <
之间的文件中提取文本和一个 >
, 但仅在以另一个特定模式开头的行上。
所以在一个看起来像这样的文件中:
XXX Something here
XXX Something more here
XXX <\Lines like this are a problem>
ZZZ something <\This is the text I need>
XXX Don't need any of this
我只想打印 <\This is the text I need>
.
如果我这样做
sed -n '/^ZZZ/p' FILENAME
它拉出我需要查看的正确行,但显然打印了整行。
sed -n '/<\/,/>/p' FILENAME prints way too much.
我研究过分组并尝试过
sed -n '/^ZZZ/{/<\/,/>/} FILENAME
但这似乎根本不起作用。
有什么建议吗?他们将不胜感激。
(抱歉格式化,以前从未在这里发布过)
最佳答案
sed -n '/^ZZZ/ { s/^.*\(<.*>\).*$/\1/p }'
关于regex - sed 查找与另一个模式一致的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19823529/