![列出所有正则表达式匹配项,每行输出一个](https://linux22.com/image/1497888/%E5%88%97%E5%87%BA%E6%89%80%E6%9C%89%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%E5%8C%B9%E9%85%8D%E9%A1%B9%EF%BC%8C%E6%AF%8F%E8%A1%8C%E8%BE%93%E5%87%BA%E4%B8%80%E4%B8%AA.png)
我知道我可以使用 找到正则表达式匹配egrep
。
我的需求有点深奥:
我需要列出所有正则表达式匹配,每行输出一个。
因此,假设一个文件包含以下内容:
This is just some sample 1text to illustrate the 2text seeker I had in mind.
As you can see in this 3text, I have many 4text matches, more than one 5text match per line of 6text.
使用正则表达式 // [0-9]+text
,我希望输出为:
1text
2text
3text
4text
5text
6text
除了拼凑一个程序来完成这项工作之外,还有什么方法可以使用标准命令生成所需的输出?
答案1
egrep -o '[0-9]+text' filename
来自 egrep 手册页:
-o, --only-matching
仅打印匹配行中匹配的(非空)部分,每个部分位于单独的输出行上。