Bonjour tout le monde
Complétement débutant en shell, on me demande de parser un fichier de log.
Je souhaite récupérer les lignes contenant la valeur "failed".
avec "sed -n '/Failed/p' fichier.log" ca marche.
Puis pour toutes ces lignes récupérer les digit entre crochets, ici 3050 et 3080.
et enfin afficher toutes les lignes contenant ces digit.

Ca ferai en yahourt:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
for each sed "failed" do grep []=var|sed var >out.txt
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
*******Soit en entrée:
Mar 28 21:53:50 ns37799 sshd[3050]: Connection from 2.2.2.2 port 16702
Mar 28 21:53:54 ns12345 sshd[3050]: Failed none for root from 1.1.1.1 port 16702 ssh2
Mar 28 21:54:01 ns12345 CRON[3058]: pam_unix(cron:session): session opened for user root by (uid=0)
Mar 28 21:54:02 ns12345 CRON[3058]: pam_unix(cron:session): session closed for user root
Mar 28 22:53:50 ns37799 sshd[3080]: Connection from 2.2.2.2 port 16702
Mar 28 22:53:54 ns12345 sshd[3080]: Failed none for root from 1.1.1.1 port 16702 ssh2
 
 
*******Et en sortie:
Mar 28 21:53:50 ns37799 sshd[3050]: Connection from 2.2.2.2 port 16702
Mar 28 21:53:54 ns12345 sshd[3050]: Failed none for root from 1.1.1.1 port 16702 ssh2
Mar 28 22:53:50 ns37799 sshd[3080]: Connection from 2.2.2.2 port 16702
Mar 28 22:53:54 ns12345 sshd[3080]: Failed none for root from 1.1.1.1 port 16702 ssh2
Je vous remercie par avance, toute aide est la bienvenue.