按regexp过滤linux bash输出的每一行
我想过滤任意输出的输出,例如按regexp过滤linux bash输出的每一行,linux,bash,unix,Linux,Bash,Unix,我想过滤任意输出的输出,例如cat或objdump,以仅显示包含“模式”的行 是否有一行UNIX/Linux命令来执行此操作 e、 g.cat filepath | xargs grep'pattern'-l对我不起作用 cat file | grep pattern 如果是静态文件,也可以只使用grep模式文件。最好使用grep-e或egrep(这允许扩展正则表达式)。 然后,您可以使用正则表达式执行更健壮的操作: cat my_phonebook | egrep "[0-9]{10}"
cat
或objdump
,以仅显示包含“模式”的行
是否有一行UNIX/Linux命令来执行此操作
e、 g.cat filepath | xargs grep'pattern'-l
对我不起作用
cat file | grep pattern
如果是静态文件,也可以只使用
grep模式文件
。最好使用grep-e
或egrep
(这允许扩展正则表达式)。
然后,您可以使用正则表达式执行更健壮的操作:
cat my_phonebook | egrep "[0-9]{10}"
在文件中显示所有10位电话号码
如果输入
-o
,则只返回数字(而不是行上的前后内容)。可以使用-n
标志显示行号<代码>cat文件| grep-n模式啊太简单了…答案被接受xargs
将输出的每一行作为独立参数传递给grep
<当您通过管道传输cat
的输出时,code>grep非常能够读取stdin
。因此,只需删除xargs
就可以了。对于您的用例来说,grep的-l
选项实际上不是必需的。如果您确实使用了-l
,它应该在模式之前,而不是之后;)