具有字段值条件的linux cut命令

时间:2015-06-17 17:10:57

标签: linux bash awk field cut

我正在试图找出一个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

2 个答案:

答案 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

应该是不言自明的。洛尔。