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 :

Script avec sed et awk


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
    Mai 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 148
    Par défaut Script avec sed et awk
    Bonjour tlm,

    quelqu'un peut m'aider pour ecrire un script avec awk et sed ?

    Voila, j'ai un fichier que je veux modifier quelques lignes et le resultat sera
    diriger vers un nouveau fichier.

    En fait les lignes que je veux modifier commence toute avec la meme chaine de caractères, mais chaque lignes est diviser en plusieurs champs, et moi je veux modifier le 3ème champ de cette ligne

    Merci.

  2. #2
    Membre expérimenté
    Inscrit en
    Octobre 2005
    Messages
    344
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 344
    Par défaut
    Je ne l'ai pas testé, mais ça devrait marcher ....

    while read ligne
    do
    champs1=`echo $ligne | awk '{print $1}'`
    # on teste si la ligne commence par le mot voulu
    if [ "$champs1" = "<chaine de caractere voulue>" ]
    then
    champs3=`echo $ligne | awk '{print $3}'`
    # on remplace le troisieme mot par ce que l on veut
    ligne=`echo $ligne | sed s/"$champs3"/"new_champs3"`
    fi
    echo $ligne >> nouveau_fichier
    done < old_fichier

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 148
    Par défaut Script shell avec awk et sed
    Bonjour,

    Merci pour la portion du script. Seulement ou dois je spécifier le nom de fichier à traiter, vu que j'en ai plusieurs dans le repertoire.

    Merci pour ta précieuse aide.

  4. #4
    Membre expérimenté
    Inscrit en
    Octobre 2005
    Messages
    344
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 344
    Par défaut
    il y a deux façons de faire : soit :
    for old_fichier in fichier1 fichier2 ... fichiern
    do
    ...
    done
    ou alors :
    for old_fichier in `ls -1 fichier*`
    ...
    done
    et remplacer old_fichier dans mon script précédent par $old_fichier

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 148
    Par défaut
    Bonjour,

    Voila je résume :

    for file in `ls -1 *.txt`
    do
    while read ligne
    do
    champs1=`echo $ligne | awk '{print $1}'`
    # on teste si la ligne commence par le mot voulu
    if [ "$champs1" = "debut de la chaine" ]
    then
    champs3=`echo $ligne | awk '{print $3}'`
    # on remplace le troisieme mot par ce que l on veut
    ligne=`echo $ligne | sed s/"$champs3"/"**********"`
    fi
    echo $ligne >> image_fichier_test.txt
    done
    done

    Mais j'ai lancer le script et il ya rien .

    Merci

  6. #6
    Membre expérimenté
    Inscrit en
    Octobre 2005
    Messages
    344
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 344
    Par défaut
    tu as oublié dans le premier done:
    done < $file

Discussions similaires

  1. Problème script avec sed
    Par irons dans le forum Linux
    Réponses: 3
    Dernier message: 25/01/2011, 11h33
  2. Script bash - besoin d'aide avec sed & awk
    Par Obiwan31 dans le forum Unix
    Réponses: 1
    Dernier message: 23/04/2010, 10h11
  3. [Shell] problème avec sed et awk
    Par tizilfin dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 15/11/2007, 13h01
  4. Extraction avec sed ou awk
    Par dubis dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 09/10/2007, 09h44
  5. script shell : probleme avec sed et awk
    Par salseropom dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 05/06/2007, 11h57

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