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

      a+
  3. 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. 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

      ;-))