Python 操纵列字段以获得清晰的表示

Python 操纵列字段以获得清晰的表示,python,linux,bash,shell,scripting,Python,Linux,Bash,Shell,Scripting,嗨,我有以下格式的txt文件中的数据 TCP dmz 10.20.10.144:8080 inside 10.1.1.98:59217, idle 0:00:11, bytes 1295, flags UFRIO TCP dmz 10.20.10.144:8082 inside 10.1.1.98:31949, idle 0:00:13, bytes 956, flags UfrIO TCP dmz 10.20.10.144:8082 inside 10.1.1.97:60194, idle 0

嗨,我有以下格式的txt文件中的数据

TCP dmz 10.20.10.144:8080 inside 10.1.1.98:59217, idle 0:00:11, bytes 1295, flags UFRIO
TCP dmz 10.20.10.144:8082 inside 10.1.1.98:31949, idle 0:00:13, bytes 956, flags UfrIO
TCP dmz 10.20.10.144:8082 inside 10.1.1.97:60194, idle 0:00:16, bytes 645, flags UfrIO
我只想提取

IP地址和字节字段,因此最终结果应为

10.20.10.144 10.1.1.98 1295
10.20.10.144 10.1.1.98 956
10.20.10.144 10.1.1.97 645
同样在最后,我想按字节(第三列)按第一个字段分组。要获得:

10.20.10.144 2896
有什么帮助吗

谢谢

您可以使用
re.findall()


[Real.FunDALL(R)(?)P>如果你想考虑AWK:

awk -F '[ ,]' '{sub(/:.+$/, "", $3); sub(/:.+$/, "", $5); print $3, $5, $11}' file
10.20.10.144 10.1.1.98 1295
10.20.10.144 10.1.1.98 956
10.20.10.144 10.1.1.97 645

根据以下评论编辑:

awk -F '[ ,]' '{sub(/:.+$/, "", $3); a[$3]+=$11} END{for (i in a) print i, a[i]}' file
10.20.10.144 2896

教科书Awk:正确拆分为字段,只打印部分字段,执行一点分组算术,并在末尾打印总计:


awk-F'[:,]''{print$3,$6,$15;sum[$3]+=$15}{END{for(i in sum)print i,sum[i]}

按字节分组(第3列)按第一个字段。要获取:10.20.10.144 2896抱歉,第一次筛选后我不理解您的评论,我想分组,按第一行汇总$3
awk -F '[ ,]' '{sub(/:.+$/, "", $3); a[$3]+=$11} END{for (i in a) print i, a[i]}' file
10.20.10.144 2896