Awk, но печатать только часть поля

324
Sean McCarthy

Я обеспокоен только частью определенного поля (имени хоста) в строке журнала и хотел бы распечатать все уникальные вхождения указанной части. В настоящее время я делаю что-то вроде:

 zcat $file | awk '$2~/f/ ' | sort | uniq -c | sort -rn 

Проблема в том, что поле 14 будет очень длинным и будет содержать такие вещи, как

/=/%%/25284687/hostname/auhga/giu/2985729/%/etc... 

Имена хостов могут различаться, и я хочу печатать только уникальные имена хостов, сортировать их и подсчитывать их и т. Д. Как мне лучше структурировать мою команду awk для достижения этой цели? Важно отметить, что все, что предшествует и добавляется в / hostname /, меняется.

0
Всегда ли имя хоста будет 5-м разделенным слешем полем $ 14? glenn jackman 5 лет назад 1

1 ответ на вопрос

0
Kamil Maciorowski

Если имена хостов всегда находятся между 4-м и 5-м /в awkвыходных данных, то этот процесс извлечет их:

cut -d / -f 5 

Разместите его сразу после вашего оригинала awk.

Похожие вопросы