我有文件,我需要提取一些数据。我遇到的问题是某些线与其他线几乎不一样。这是一个例子:
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但是它对我没用。 请帮我解释你的答案。
答案 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
当然,键值订单很重要。