Recherche

Bonjour a touts ,

J'ai deux demande SVP :
qlq peut me donner SVP une commande shell pour trouver le mot "error" dans un chemin ou il existe plusieurs fichiers et repertoire ?

Comment on lit un fichier ligne par ligne ?

Merci beucoup pour vos reponse !!

A+
Configuration: Windows XP
Firefox 2.0.0.3

5 réponses

  1. Contributeur
    Hi
    find . -name "*error*" -ls
    et
    more -1 fichier
    0
    1. Modérateur
      Salut,

      qlq peut me donner SVP une commande shell pour trouver le mot "error" dans un chemin ou il existe plusieurs fichiers et repertoire ?
      find /chemin/repertoire/ -name "*" -exec grep -Hn "error" {} \;
      Comment on lit un fichier ligne par ligne ?
      comment lire un fichier ligne par ligne

      ;-))
      0
      1. Merci a tous les deux !!

        voila ce qu'il m'affiche :
        root@secu toto]# find /root/toto/ -name "*" -exec grep -H "error" {} \;
        /root/toto/bobo/lili:error
        /root/toto/bobo/lala:error
        /root/toto/tete:error
        /root/toto/titi:error

        Je voudrai terminer par un affichage beucoup plus parlant genre :

        sur le fichier /root/toto/bobo/lili existe une erreur
        sur le ficier /root/toto/bobo/lala existe une erreur
        ....

        Merci
        0
        1. Contributeur
          find /root/toto/ -type f -exec grep -il "error" {} \; | xargs echo erreur dans le fichier {}
          0
          1. Merci Dubcek ca marche !!

            a+
            0
        2. Modérateur
          while read line
          do echo "$line" | awk -F":" '{ print "Sur le fichier "$1" existe une erreur" }'
          done < <(find /root/toto/ -name "*" -exec grep -Ho "error" {} \;)
          ;-))
          0
          1. Merci jipicy !! ta solution est interessante ,mais a l'execution voila ce que j'ai :

            while read line
            do echo "$line" | awk -F ":" '{ print "Sur le fichier "$1" existe une erreur" }'
            done << (find /root/toto/ -name "*" -exec grep -Ho "error" {} \;)
            ~
            "test4" 4L, 174C écrit(s)
            [root@secu toto]# ./test4
            ./test4[4]: syntax error: `(' unexpected
            [root@secu toto]#

            Merci.
            0
          2. Modérateur
            @dinoAttention à la syntaxe !!!
            done << (find /root/toto/ -name "*" -exec grep -Ho "error" {} \;) 
            Il faut un espace entre les 2 chevrons et aucun entre le 2nd chevron et la parenthèse ouvrante :
            done < <(find /root/toto/ -name "*" -exec grep -Ho "error" {} \;) 
            ;-))
            0
          3. @jipicyBonjour jipicy !

            Desolé de te deranger encore mais j'ai fait un copier/collé mais tjrs le meme message :

            done < <(find /root/toto/ -name "*" -exec grep -Ho "error" {} \;)

            [root@secu toto]# ./test4
            ./test4[4]: syntax error: `< ' unexpected
            [root@secu toto]#

            Merci !
            0
          4. Modérateur
            @jipicyRe-

            Quelle est ta version de bash ?
            Affiche ton script en intégralité s'il te plaît.
            0
          5. @jipicySalut !

            Voila le script :
            #!/bin/ksh
            while read line
            do echo "$line" | awk -F ":" '{ print "Sur le fichier "$1" existe une erreur" }'
            done < <(find /root/toto/ -name "*" -exec grep -Ho "error" {} \;)
            ~

            Et pour la version :

            [root@secu toto]# env
            TERM=vt100
            SHELL=/bin/bash
            PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin
            INPUTRC=/etc/inputrc
            PWD=/root/toto
            SHLVL=1
            HOME=/root
            LOGNAME=root
            LESSOPEN=|/usr/bin/lesspipe.sh %s
            G_BROKEN_FILENAMES=1
            _=/bin/env

            Merci !
            0