Recherche

dino -  
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   -
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. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    Hi
    find . -name "*error*" -ls
    et
    more -1 fichier
    0
  2. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    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
  3. dino
     
    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
  4. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    find /root/toto/ -type f -exec grep -il "error" {} \; | xargs echo erreur dans le fichier {}
    0
    1. dino
       
      Merci Dubcek ca marche !!

      a+
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    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. dino
       
      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. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898 > dino
       
      Attention à 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. dino > jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention  
       
      Bonjour 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. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898 > jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention  
       
      Re-

      Quelle est ta version de bash ?
      Affiche ton script en intégralité s'il te plaît.
      0
    5. dino > jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention  
       
      Salut !

      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