Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 30/06/2017, à 18:21

Compte supprimé

[Résolu] Recherche d'un mot dans un fichier.

Bonsoir,

Je cherche à déterminer si le mot "error" est présent au moins une fois dans un fichier de log. S'il est présent je déclencherai un avertissement avec notify-send.

Comme je suis grand débutant en matière de script, j'arrive juste à lister les lignes qui contiennent ce mot en utilisant :

grep "error" mon_fichier >> résultat en sortie

Je n'ai pas besoin d'afficher toutes les lignes qui ont ce mot, juste de savoir s'il y est ou non. Pour voir en analysant la taille du fichier ...

Si quelqu'un peut me mettre sur la bonne voie pour la suite, je le remercie d'avance.

Dernière modification par Compte supprimé (Le 30/06/2017, à 19:57)

#2 Le 30/06/2017, à 18:33

pingouinux

Re : [Résolu] Recherche d'un mot dans un fichier.

Bonsoir,

grep -q "error" mon_fichier && notify-send ....

Hors ligne

#3 Le 30/06/2017, à 18:36

Compte supprimé

Re : [Résolu] Recherche d'un mot dans un fichier.

Merci pingouinux, c'est parfait

-q, --quiet, --silent
              Quiet;  do  not  write  anything  to  standard   output.    Exit
              immediately  with  zero status if any match is found, even if an
              error was detected.

Je dois pouvoir mettre une condition basée sur le résultat en sortie. Si $0 n'est pas zéro, alors une notification, sinon rien. Je teste.

Edit : A condition de savoir capter la valeur du retour de grep -p

Dernière modification par Compte supprimé (Le 30/06/2017, à 18:56)

#4 Le 30/06/2017, à 18:55

pingouinux

Re : [Résolu] Recherche d'un mot dans un fichier.

Inutile de faire tout ça.

grep -q "error" mon_fichier && echo "Pas d'erreur" || echo "Il y a des erreurs"

ou bien

if grep -q "error" mon_fichier; then
   echo "Pas d'erreur"
else
   echo "Il y a des erreurs"
fi

Hors ligne

#5 Le 30/06/2017, à 18:58

Compte supprimé

Re : [Résolu] Recherche d'un mot dans un fichier.

Merci beaucoup.Je vais adapter à mon cas.

#6 Le 30/06/2017, à 19:10

Watael

Re : [Résolu] Recherche d'un mot dans un fichier.

$0 est le nom du script, il y a peu de chance qu'il soit égal à zéro (ce n'est pas impossible, mais qui appellerait son script 0 ?)

tu voulais utiliser $?, bien que ce ne soit pas indispensable :

if grep -q "error" $chemin/$nomFichier
then
   echo "error"
else
   echo "pas d'erreur"
fi

ou

grep -q "error" $chemin/$nomFichier && echo "error" || echo "pas d'erreur"

--

Utilisateur d'Archlinux avec Gnome-shell, Raspbian avec XFCE et Xubuntu.

et Xubuntu avec quoi ? lol


Connected \o/
Welcome to sHell. · eval is evil.

En ligne

#7 Le 30/06/2017, à 19:59

Compte supprimé

Re : [Résolu] Recherche d'un mot dans un fichier.

Watael a écrit :

et Xubuntu avec quoi ? lol

Tant mieux si cela a pu te faire rire, c'est mon remerciement pour ton intervention.

Edit : effectivement j'ai écrit : "Si $0 n'est pas zéro", alors que je pensais à  "Si $? n'est pas zéro". Trop de zéro nuit au zéro smile
Mais cela produirait l'inverse de l'effet voulu car "grep -q" retourne zéro dans le cas où il trouve la chaîne recherchée.

Dernière modification par Compte supprimé (Le 01/07/2017, à 07:12)