Wenn sich Hostnamen /
in der awk
Ausgabe immer zwischen dem 4. und dem 5. befinden, werden sie durch diesen Vorgang extrahiert:
cut -d / -f 5
Platzieren Sie es gleich nach Ihrem Original awk
.
Ich befasse mich nur mit einem Teil eines bestimmten Feldes (Hostname) in einer Protokollzeile und möchte alle eindeutigen Vorkommen dieses Teils drucken. Ich mache momentan so etwas wie:
zcat $file | awk '$2~/f/ ' | sort | uniq -c | sort -rn
Das Problem ist, dass Feld 14 wirklich lang ist und eine Menge Dinge enthält
/=/%%/25284687/hostname/auhga/giu/2985729/%/etc...
Die Hostnamen können variieren, und ich möchte nur die einzelnen Hostnamen drucken, sortieren und zählen usw. Wie kann ich meinen Befehl awk besser strukturieren, um dies zu erreichen? Es ist wichtig, zu beachten, dass alles, was den / hostnamen / -Abschnitt vorangestellt und angehängt hat, unterschiedlich ist.
Wenn sich Hostnamen /
in der awk
Ausgabe immer zwischen dem 4. und dem 5. befinden, werden sie durch diesen Vorgang extrahiert:
cut -d / -f 5
Platzieren Sie es gleich nach Ihrem Original awk
.