2017-02-02 16 views
1

У меня есть файл tcpdump, и я хотел бы распечатать, сколько строк/пакетов было отправлено.вывод tcpdump на одной строке

Я использую команду tcpdump -r, но некоторые из результатов кажутся растянутыми на две строки (см. Рисунок ниже), даже если они из одного протокола.

Мой вопрос: как я могу заставить его не отображаться на новой строке и распечатывать всего строки?

Я тестировал его с использованием графического интерфейса Wireshark, и он должен иметь 3188 строк, но я хотел бы сделать это с помощью командной строки Linux.

enter image description here

ответ

0

Если у вас есть содержание вывода TCPDUMP в текстовом файле вы можете избежать переносы строк, используя меньше с -S параметром.

от менее руководства:

-S или --chop-длинная-линия вызывает линию длиннее, чем ширина экрана, чтобы быть рубленым (усеченным), а не обернут. То есть часть длинной линии , которая не соответствует ширине экрана, не показана. По умолчанию используется , чтобы обернуть длинные строки; то есть отобразить остаток на следующей строке.

При использовании с параметром -N количество линий также будет показано.

0

как сделать, чтобы он не появляется на новой строке и распечатать итог линий

Если вы не хотите длинные очереди, чтобы быть обернуты, вам придется укоротить их. Вы можете сделать это, используя команду cut. Например:

tshark -r file.pcap | cut -c -80 

Если вы только хотите, чтобы подсчитать количество строк в выходных данных, то вы можете сделать это с помощью команды wc. Например:

tshark -r file.pcap | wc -l 

Примечание: ли вы укоротить длинные линии или нет, подсчет количества строк остается тем же. Просто потому, что длинная строка обернута, не означает увеличения количества строк; это не так. Итак, если вам действительно не нужно урезать длинные очереди, я бы посоветовал это; иначе вы собираетесь измельчить потенциально полезную информацию без уважительной причины.

Это сказало, если вы хотите укоротить длинные линии, и если вы хотите, чтобы иметь возможность распечатывать общее число линий, то это, вероятно, потребуется 2 шага:

  1. перенаправлять усеченный вывод в файл и
  2. Подсчитайте количество строк в файле, используя wc.

Например:

tshark -r file.pcap | cut -c -80 > file.txt 
wc -l file.txt (or cat file.txt | wc -l) 

Если вы хотите, чтобы иметь возможность сразу увидеть результат, а также записать вывод в файл для подсчета количества строк, то вы можете сделать это с tee команды, например:

tshark -r file.pcap | cut -c -80 | tee file.txt 
wc -l file.txt 
1

Предполагая, что вы работаете в Баше или KSH, запустить «экспорт КОЛОННУ = 1024» перед запуском ТСРйитра. Tcpdump сделает вывод, что дисплей имеет ширину 1024 символов, что должно быть достаточным для того, чтобы каждый пакет находился на одной выходной строке. Я не думаю, что существует практическое ограничение ценности COLUMNS.