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

    zcat $file | awk '$2~/f/ {print $14}' | sort | uniq -c | sort -rn

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

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

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

1 ответ1

0

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

cut -d / -f 5

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .