如何用单条命令提取tshark输出中指定HTTP项的Count列?
单条命令提取多目标HTTP统计值
当然可以用单条命令一次性提取所有你需要的Count值,不用反复执行awk!这里有两种实用的方案:
方案1:简洁匹配,直接输出对应行
利用awk的正则匹配功能,用|分隔多个目标关键词,一次捕获所有目标行并提取Count列:
tshark -q -r dump.pcap -Y http -z http,tree | awk '/HTTP Request Packets|SEARCH|NOTIFY|HTTP Response Packets/ {print $1, $2}'
这个命令会输出类似这样的结果:
HTTP Request Packets 120
SEARCH 15
NOTIFY 8
HTTP Response Packets 118
方案2:自定义输出格式,更易读
如果希望输出的结果更清晰,能直接对应每个统计项的含义,可以给awk加多个条件分支,自定义输出文本:
tshark -q -r dump.pcap -Y http -z http,tree | awk ' /HTTP Request Packets/ {print "HTTP 请求包总数:", $2} /SEARCH/ {print "SEARCH 请求数:", $2} /NOTIFY/ {print "NOTIFY 请求数:", $2} /HTTP Response Packets/ {print "HTTP 响应包总数:", $2} '
执行后会得到更直观的输出:
HTTP 请求包总数: 120
SEARCH 请求数: 15
NOTIFY 请求数: 8
HTTP 响应包总数: 118
小提示
这里用$2提取Count值是基于你当前tshark输出的字段位置,如果后续tshark的输出格式有变化,也可以试试用$NF取每行最后一个字段(要是Count始终在末尾的话),适配性更强。
内容的提问来源于stack exchange,提问作者mg9893
相关产品推荐
相关产品推荐

