我有一个tcpdump文件,我想打印出已经发送了多少行/包。
我正在使用tcpdump -r命令,但有些输出似乎延伸到两行(见下图),即使它们来自同一协议。
我的问题是如何让它不显示在新行上并打印出总行?
我已经使用Wireshark GUI对其进行了测试,它应该有3188行,但我想使用Linux命令行来完成此操作。
答案 0 :(得分:1)
假设您正在使用bash或ksh,请在运行tcpdump之前运行“export COLUMNS = 1024”。 Tcpdump将得出结论,显示器宽度为1024个字符,这应该足以使每个数据包位于一个输出线上。我认为COLUMNS值没有任何实际限制。
答案 1 :(得分:0)
如果你在文本文件中有tcpdump输出的内容,你可以通过使用less -S
参数来避免换行。
从较少的手册:
-S或--chop-long-lines 导致长于屏幕宽度的行被切断(截断)而不是包裹。也就是说,长线的一部分 不显示不适合屏幕宽度的。默认是 包裹长线;也就是说,在下一行显示余数。
与-N
参数一起使用时,也会显示行数。
答案 2 :(得分:0)
如何让它不显示在新行上并打印出总行数
如果您不想包裹长行,则必须截断它们。您可以使用cut
命令执行此操作。例如:
tshark -r file.pcap | cut -c -80
如果仅想要计算输出中的行数,则可以使用wc
命令进行计数。例如:
tshark -r file.pcap | wc -l
注意:无论是否截断长行,行数的计数都保持不变。仅仅因为缠绕一条长线并不意味着线数增加;它没有。所以,除非你真的需要截断长线,否则我会反对它;否则你将无缘无故地切断可能有用的信息。
那就是说,如果你想截断长线,如果你也想打印出总行数,那么这可能需要两个步骤:
wc
计算文件中的行数。例如:
tshark -r file.pcap | cut -c -80 > file.txt
wc -l file.txt (or cat file.txt | wc -l)
如果您希望能够立即查看输出以及将输出写入文件以计算行数,则可以使用tee
命令执行此操作,例如:< / p>
tshark -r file.pcap | cut -c -80 | tee file.txt
wc -l file.txt
答案 3 :(得分:0)
tcpdump -nnA
将在一行中以ASCII格式打印每个包裹