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

Shell et commandes GNU Discussion :

petit script avec grep


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2002
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 168
    Par défaut petit script avec grep
    Bonjour,

    je suis bloqué dans un script, je veux chercher une chaîne de caractère dans un type de fichiers particuliers et remplacer cette chaîne de caractère par le vide.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for file in `find . -name "*.[CcHH]" | xargs grep $1`
    do 
       sed -e "s/$1/ /g" $file > temp_1
       mv temp_1 $file
    done
    question : j'ai un problème dans le find . -name "*.[CcHH]" | xargs grep $1, moi j'ai besoin des noms des fichiers pour pouvoir itérer sur ces fichiers et remplacer la chaîne $1 par un espace.

    merci

    turbo_chess

  2. #2
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Par défaut
    et comme cela...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find . -name "*.[CcHH]" | xargs grep -i $chaine | awk -F ':' '{print $1}'
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2002
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 168
    Par défaut
    Citation Envoyé par gorgonite
    et comme cela...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find . -name "*.[CcHH]" | xargs grep -i $chaine | awk -F ':' '{print $1}'
    Bonjour,

    ça marche merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $ find . -name "*.[CcHh]" | xargs grep adil | awk -F ':' '{print $1}'
    le résultat est :

    NB : il y a seulement un petit problème, il faut que les fichiers trouvés soit > 1

    merci

    turbo_chess

  4. #4
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Par défaut
    Citation Envoyé par turbo_chess
    NB : il y a seulement un petit problème, il faut que les fichiers trouvés soit > 1

    normal...

    mais un test avec wc -l devrait te le confirmer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    RAW_RES=`find . -name "*.[CcHH]" | xargs grep -i $chaine` 
    NB_RES=`cat $RAW_RES | wc -l`
    if [$NB_RES -gt 0]
    then
    RES=`cat $RAW_RES | awk -F ':' '{print $1}'
    ...
    fi
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  5. #5
    Membre confirmé
    Inscrit en
    Juillet 2002
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 168
    Par défaut
    Bonjour,

    merci c'est gentil de ta part.

    il y a un argument dans grep (-l), il liste les fichiers où la chaîne a été trouvé, il suffit seulement que j'ajoute quelques tests.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for file in `find . -name "*.[CchH]" | xargs grep -l $1`
    do
       sed -e "s/$1/ /g" $file > temp_1
       mv temp_1 $file
    done
    merci

    turbo_chess

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

Discussions similaires

  1. script avec grep
    Par turbo_chess dans le forum Shell et commandes GNU
    Réponses: 6
    Dernier message: 23/03/2007, 16h31
  2. Petit script d'images aléatoires avec lien
    Par Syntax-ERROR dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 09/01/2007, 21h43
  3. Petit souci avec un script
    Par Equinoxe5 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 30/09/2006, 15h43
  4. (Batch et VBS) Petit probléme avec un script batch VBS
    Par Edoxituz dans le forum Windows
    Réponses: 11
    Dernier message: 27/02/2006, 17h21
  5. Petit problème avec grep
    Par dug dans le forum Shell et commandes GNU
    Réponses: 13
    Dernier message: 11/05/2005, 15h34

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