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. 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

    ;-))
    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
      1. Contributeur
        find /root/toto/ -type f -exec grep -il "error" {} \; | xargs echo erreur dans le fichier {}
        1. Merci Dubcek ca marche !!

          a+
      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" {} \;)
        ;-))
        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.
        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" {} \;) 
          ;-))
        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 !
        4. Modérateur
          @jipicyRe-

          Quelle est ta version de bash ?
          Affiche ton script en intégralité s'il te plaît.
        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 !