我正在试图找出一个linux shell命令,该命令将显示满足其他字段条件的日志中字段的一部分。
示例日志文件:
2013-04-15;admin@abc.com;111111@abc.com;outgoing;24;headline
2013-04-15;222222@abc.com;admin@abc.com;incoming;0;chat
2013-04-15;admin@abc.com;333333@abc.com;outgoing;26;headline
2013-04-15;444444@abc.com;333333;incoming;12;chat
2013-04-16;444444@abc.com;555555;incoming;0;chat
我试图只显示字段2和3中由分隔符分隔的唯一数字';'其中field 5!= 0
示例预期输出:
111111
333333
444444
答案 0 :(得分:2)
$ awk -F";" '$5!=0{print $2, $3}' fields.txt | grep -o '[0-9]\+' | sort -u
111111
333333
444444
说明:根据第5列值提取第2列和第3列;只匹配数字;消除重复
答案 1 :(得分:0)
grep -Po '\d+(?=([^;]*;)?[^;]*;[^;]+;[^0][^;]*;[a-z]+$)' logfile|sort -u
应该是不言自明的。洛尔。