#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 ?
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#7 Le 30/06/2017, à 19:59
- Compte supprimé
Re : [Résolu] Recherche d'un mot dans un fichier.
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
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)