【发布时间】:2011-09-09 17:25:18
【问题描述】:
在 unix 命令行上将所有匹配项(每次匹配一行或每行输入一行)打印到正则表达式的最简单方法是什么?请注意,每行输入可能有 0 个或超过 1 个匹配项。
我认为必须有某种方法可以使用 sed、awk、grep 和/或 perl 来执行此操作,并且我希望有一个简单的命令行解决方案,以便将来需要时它会显示在我的 bash 历史记录中.
编辑:澄清一下,我不想打印所有匹配的行,只打印正则表达式的匹配项。例如,一行可能有 1000 个字符,但正则表达式只有两个 10 个字符的匹配项。我只对那两个 10 个字符的匹配项感兴趣。
【问题讨论】:
-
到正则表达式?我想你的意思是正则表达式
-
对不起,你能扩展一下你想要的吗?从表面上看,这听起来像是一个简单的“grep”,但我知道这不可能是它的全部。 :)
-
假设输入是“fod,food,fad\nbar\nfoooood\n”,正则表达式是“fo*d”。那么输出应该是“fod\nfood\nfoooood\n”或“fodfood\n\nfoooood\n”。