tcpdump输出在一行上

时间:2017-02-02 08:14:12

标签: linux command wireshark tcpdump

我有一个tcpdump文件,我想打印出已经发送了多少行/包。

我正在使用tcpdump -r命令,但有些输出似乎延伸到两行(见下图),即使它们来自同一协议。

我的问题是如何让它不显示在新行上并打印出总行?

我已经使用Wireshark GUI对其进行了测试,它应该有3188行,但我想使用Linux命令行来完成此操作。

enter image description here

4 个答案:

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

注意:无论是否截断长行,行数的计数都保持不变。仅仅因为缠绕一条长线并不意味着线数增加;它没有。所以,除非你真的需要截断长线,否则我会反对它;否则你将无缘无故地切断可能有用的信息。

那就是说,如果你想截断长线,如果你也想打印出总行数,那么这可能需要两个步骤:

  1. 将截断的输出重定向到文件,
  2. 使用wc计算文件中的行数。
  3. 例如:

    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格式打印每个包裹