Короткий ответ: Вы не можете.
Длинный ответ: Wireshark работает над уровнями 1-6 (лучше всего на уровнях 1-3). Это http-content-information находится на уровне 7.
Таким образом, если Ваш хотеть к вошедшему глубину здесь это - то, что Вы могли сделать (вдоль этих строк):
Постоянно наблюдайте tcp/http-traffic с tpcdump
для пакетов, меньших, чем 900 байтов (типичная длина первоначального запроса HTTP). Если Вы встречаетесь с "интересными" URL, инициировали полный дамп рассматриваемого соединения.
Вы могли сделать это с постоянным полным дампом также, но в этом случае Ваш сервер сниффера больше всего propably войдет в проблемы производительности.
Любым путем Вам нужен второй процесс, который фильтрует/инициирует на tcpdump-выводе.
Альтернатива могла быть должной к сценарию wireshark
- gui или использование это для получения рассматриваемых пакетов.
Стандартный трюк для такого рода задача в awk - это использовать ассоциативный счетчик счетчиков:
awk '{ print $0 "\t" ++count[$1] }'
Это подсчитывает количество раз, которое было замечено первое слово в каждой строке. Это не совсем то, что вы просите, поскольку
Apple_1 1 300
Apple_2 1 500
Apple_1 500 1500
будет производить
Apple_1 1 300 1
Apple_2 1 500 1
Apple_1 500 1500 2
(счетчик для Apple_1
не сбрасывается, когда мы видим Apple_2
), но если вход сортируется, вы будете в порядке.
В противном случае вам нужно отслеживать счетчик и последний ключ:
awk '{ if (word == $1) { counter++ } else { counter = 1; word = $1 }; print $0 "\t" counter }'
Этот ответ не дает точного результата, который вы указали, , но может представлять еще больший интерес для других пользователей.
Если вам не нужны инкрементальные счетчики, а просто счет каждого уникального значения, вы можете использовать более простой вариант:
cut -f1 file.txt | sort | uniq -c
(обратите внимание, что разрез
зависит от разделителей табуляции, не просто пробелы.)
На самом деле, поскольку ваш файл уже отсортирован по первому полю, вам не нужно сортировать его:
cut -f1 file.txt | uniq -c
И если вы хотите включить их в исходный файл как новый, четвертый столбец, вы можете использовать join
:
cut -f1 file.txt | uniq -c | join -2 2 file.txt -
( join
зависит от отсортированного ввода.)
Вывод предоставленных входных данных:
Apple_1 1 300 1
Apple_2 1 500 3
Apple_2 500 1500 3
Apple_2 1500 2450 3
Apple_3 1 1250 2
Apple_3 1250 2000 2
Обратите внимание, что join
считывает разделители пробелов интуитивно понятным образом, будь то табуляция или пробелы, но выводит ровно один пробел в качестве разделителя. Если вы хотите вернуть свои вкладки, перенаправьте их на tr '' '\ t'