grep et awk analyser ligne
J'ai e une ligne qui ressemble à:
Feb 21 1:05:14 host kernel: [112.33000] SRC=192.168.0.1 DST=90.90.90.90 PREC=0x40 TTL=51 ....
Je voudrais la liste des programmes IPs de SRC=
Comment puis-je faire cela? Grâce
- Merci tout le monde!
- Permettez-moi de vous accueillir sur StackOverflow et de rappeler trois choses que nous avons l'habitude de faire: 1) Que vous recevez de l'aide, essayez de lui donner trop répondre aux questions dans votre domaine d'expertise 2)
Read the FAQs
3) Quand vous voyez une bonne Q&A, vote jusqu'using the gray triangles
, la crédibilité du système est basée sur la réputation que les utilisateurs de gagner en partageant leurs connaissances. Pensez également à accepter la réponse que mieux de résoudre votre problème, le cas échéant,by pressing the checkmark sign
Vous devez vous connecter pour publier un commentaire.
Cela fonctionne, bien que vous pourriez probablement simplifier encore plus dans un seul script awk si vous voulais:
awk '{split($7, a, /=/); print a[2]}' file | sort -u
pour éviter l'appel de awk deux foisgrep -o 'SRC=\([^ ]\+\)' | cut -d= -f2 | sort -u
Ce script awk faire:
SRC=
pour chaque ligneCela permettra d'imprimer les adresses IP dans l'ordre, sans les "SRC=" string:
Exemple de sortie:
Ruby(1.9+)