用linux从文本文件中提取数据

时间:2016-12-22 14:07:53

标签: linux

我有文件,我需要提取一些数据。我遇到的问题是某些线与其他线几乎不一样。这是一个例子:

 action=accept trandisp=noop srcip=1.1.1.1 dstip=2.2.2.2 service=PING proto=1 duration=61 
 action=accept trandisp=noop srcip=1.1.1.1 dstip=3.3.3.3 dstport=80 service=http proto=1 duration=61

我想在第一行获取目标IP和服务 在第二行使用dstport和service的目标IP。

我是linux的新手,我尝试使用grep和cut但是它对我没用。 请帮我解释你的答案。

1 个答案:

答案 0 :(得分:0)

这个怎么样?
grep -o -P "dstip=[0-9.]+ (dstport=[0-9]+)? service=\w+ (dstport=[0-9]+)?" your-file

说明:

-o, --only-matching       show only the part of a line matching PATTERN
-P, --perl-regexp         PATTERN is a Perl regular expression

当然,键值订单很重要。