Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
按regexp过滤linux bash输出的每一行_Linux_Bash_Unix - Fatal编程技术网

按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
,它应该在模式之前,而不是之后;)