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 :

Shell => Commande sed


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2014
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2014
    Messages : 59
    Par défaut Shell => Commande sed
    Bonjour à tous,

    J'ai le script ci-dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    #!/bin/ksh
     
    PAYS="FRANCE"
    CITY="PARIS"
    STATUT="GOOD"
    CONTINENT="EUROPE"
    while read line
    	do
    		if [ "${PAYS}" = "${line}" ]
    		then
    			sed -ie s/"${line}"/"${CONTINENT}"/g fichier.txt
    		fi
    		if [ "${CITY}" = "${line}" ]
    		then
    			sed -ie s/"${line}"/"${STATUT}"/g fichier.txt
    		fi
    	done < fichier.txt
    Je souhaite lire un fichier ligne par ligne puis remplacer la ligne lue dans ce même fichier si et seulement si elle est égale à la chaine de caractère définie dans les paramètres.
    Je n'ai pas le résultat attendu et je n'ai aucune erreur sur la console.

    Merci de votre aide.

    Cordialement,

    PythonNovices

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 705
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 705
    Par défaut
    Bonjour,

    la boucle while ne sert à rien, si ce n'est à ralentir la réalisation des substitutions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -i 's/'"$pays"'/'"$continent"'/g; s/'"$city"'/'"$statut"'/g' tonFichier
    tu remarqueras que j'ai mis le nom des variables en minuscules, car, par convention, seules les variables d'environnement doivent être en majuscules.

  3. #3
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 299
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 299
    Par défaut
    Bonjour,

    Une inspiration:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    $ cat JHRsdf.txt
    France
    FRANCE
    FRANCE TERRE D'ASILE
    Chtoï chtoï chti louli louli
    Fin
    $ sed '/^'"$pays"'$/s//'"$statut"'/' JHRsdf.txt
    France
    FRANCE
    FRANCE TERRE D'ASILE
    Chtoï chtoï chti louli louli
    Fin
    $ pays=FRANCE
    $ statut=GOOD
    $ sed '/^'"$pays"'$/s//'"$statut"'/' JHRsdf.txt
    France
    GOOD
    FRANCE TERRE D'ASILE
    Chtoï chtoï chti louli louli
    Fin
    $

  4. #4
    Membre actif
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2014
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2014
    Messages : 59
    Par défaut
    Bonjour,

    Merci beaucoup !

    Cdt,

    PythonNovices

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

Discussions similaires

  1. [Shell] plusieurs commandes sed simultanées dans un même script
    Par hakkio dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 05/12/2011, 15h40
  2. [shell unix] Commande sed
    Par Michel38 dans le forum Shell et commandes POSIX
    Réponses: 3
    Dernier message: 31/08/2011, 16h15
  3. c shell + commande sed
    Par gaucher dans le forum Linux
    Réponses: 3
    Dernier message: 15/11/2007, 13h42
  4. c shell + commande sed
    Par gaucher dans le forum Shell et commandes GNU
    Réponses: 10
    Dernier message: 14/11/2007, 14h19
  5. La commande sed ne prend pas ma variable du shell
    Par Michaël dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 03/10/2006, 20h11

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