我想提取使用 grep 或诸如此类的特定单词后的下一个单词/数字。

举个例子,假设这是我在标准输出中的内容

string-a0 match-a1 string-a2 string-a3 
string-b0 string-b1 match-b2 string-b3 
match-c0 string-c1 string-c2 string-c3 

我只想留下这个

string-a2 
string-b3 
string-c1 

请注意match-a1 != match-b2 != match-c0

编辑

一个具体的例子...

标准输出是这个

open 0.23 date ... 
close 1.52 date ... 
open 2.34 date ... 
close 5.92 date ... 
open 10.78 date ... 
close 24.21 date ... 
total 45.3 

我正在搜索单词open , closetotal所以输出应该是

0.23 
1.52 
2.34 
5.92 
10.78 
24.21 
45.3 

请您参考如下方法:

这与一般情况不符,但适用于您的示例:

awk '/^open|^close|^total/{print $2}' input 

对于一般情况,如果您对“字符串”的定义基于空格,也许您想要:

tr -s ' \n' \\n < input | awk 'p{print; p=0} {p=/^open|^close|^total/}' 


评论关闭
IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!