IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

[Shell] Vérifier le retour de grep


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    50
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 50
    Par défaut [Shell] Vérifier le retour de grep
    Bonjour, je voudrais verifier si dans un fichier $DB_NAME, il y a une ligne commencant par $KEY :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    		if [ grep -G ^$KEY.\* $DB_NAME ]; then
    			echo "Grep vide"
    			return 0
    		else
    			echo "Grep pas vide"
    			return 1
    		fi
    ca me donne dans tcsh (avec -x)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    + [ grep -G ^lol.* titi.db ]
    [: grep: unexpected operator
    + echo Grep pas vide
    Grep pas vide
    Pourtant si j'execute mon grep, ca marche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $ grep -G ^lol.\* titi.db
    lol=cool
    $ cat titi.db
    test1=rep1
    lol=cool
    autrechose
    $
    une idee ?

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    50
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 50
    Par défaut
    bon, j'ai trouve

    Pour ceux qui cherche la meme chose ou sont interresse, voila comment j'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    	# return 0 if $DB_NAME does not exist or grep finds nothing
    	if [ -f $DB_NAME ]; then
    		grep -E ^$KEY.\* $DB_NAME > /dev/null
    		if [ $? -ne 1 ]; then
    			return 1
    		fi
    	fi
    return 0
    apperemment grep retourne 1 si il ne trouve pas, d'ou le -ne

  3. #3
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Toutankharton Voir le message
    bon, j'ai trouve

    Pour ceux qui cherche la meme chose ou sont interresse, voila comment j'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    	# return 0 if $DB_NAME does not exist or grep finds nothing
    	if [ -f $DB_NAME ]; then
    		grep -E ^$KEY.\* $DB_NAME > /dev/null
    		if [ $? -ne 1 ]; then
    			return 1
    		fi
    	fi
    return 0
    apperemment grep retourne 1 si il ne trouve pas, d'ou le -ne
    En fait il retourne "faux" donc "pas 0" (pas forcément 1 !!!)
    Donc vaudrait mieux tester si $? -eq 0

    Par ailleurs écrire une fonction qui renvoie 0 ("vrai") si un truc n'existe pas ou n'est pas trouvé est peu conventionnel. N'oublie pas qu'en shell, les conventions veulent que 0 soit vrai et "pas 0" faux. Bien évidemment une convention n'est pas une obligation donc t'es libre. D'ailleurs le programme "expr" renvoie 1 quand l'expression qu'il évalue vaut 0 donc c'est la preuve que rien n'est obligé mais c'est en général mieux...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Commande Shell, et ses retours
    Par olivierd77 dans le forum VB.NET
    Réponses: 9
    Dernier message: 22/09/2010, 11h55
  2. [Shell] Code de retour
    Par pepsi33 dans le forum C
    Réponses: 2
    Dernier message: 04/07/2010, 18h42
  3. SHELL suppresion du retour à la ligne
    Par ammah dans le forum Linux
    Réponses: 1
    Dernier message: 05/12/2008, 07h50
  4. [DOS] shell - valeur de retour
    Par Nemehy dans le forum Scripts/Batch
    Réponses: 12
    Dernier message: 23/05/2006, 01h01
  5. Retour de requete postgresql / Shell Script
    Par doohan dans le forum Requêtes
    Réponses: 3
    Dernier message: 26/06/2003, 18h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo