Python 操纵列字段以获得清晰的表示
嗨,我有以下格式的txt文件中的数据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
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