从文件中提取多行

马诺莱特

我想grep命令的文件的多行。该文件的示例originalfile.txt可能是:

num=12
workers not specified
length= 128
Using array element 
num= 24 
workers not specified
length= 128
Using array element 
......

grep想像numwith一样的有价值的行length

num=12
length= 128
num= 24 
length= 128
......

grep只说一种模式,num但是我不知道如何做一种以上的模式。

$ grep "num" originalfile.txt

事实证明,在同一行中有一些awk似乎找不到的参数,即:

.... time= 1.234 Gflop/s= 3.4556 .....

它过滤第一个,但不过滤Gflop / s。有没有办法在同一行上递归查找?

user000001

使用-E选项

来自man grep

-E,-extended-regexp

将PATTERN解释为扩展的正则表达式(请参见下文)。

$ grep -E 'length|num' data
num=12
length= 128
num= 24 
length= 128

如果只想获取可以传送到的号码,请更新 awk

grep -E 'length|num' data | awk -F'= ?' '{print $2}'

但是,然后您可以在signle awk命令中完成所有操作,并避免使用grep

awk -F'= ?' '/length/||/num/{print $2}' data

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章