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 :

[SED / AWK] Modification fichier


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 45
    Par défaut [SED / AWK] Modification fichier
    Bonjour à tous,

    Je souhaite modifier toutes les lignes d'un fichier qui commencent pas ..AA de la position X à la position Y (de taille N) par une variable.

    Dans l'idée je pensais utilisais un sed comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    var=$(plop)
    #plop est une fonction qui va me renvoyer par quoi faire le changement
     
    sed '/^..AA/s/\(.\{X\}\)\(.\{N\}\)/${var}/' ${file} > ${file}.tmp
    Je bloque depuis un petit moment, aurez vous des idées ? ou des explications pour m'expliquer ce qui ne va pas.

    Merci !

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

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

    les variables ne sont pas développées entre apostrophes (').
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var="la"
    echo 'tra'"$var"'lère'
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 45
    Par défaut
    Pour info, voici la solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    var=$(plop)
    #plop est une fonction qui va me renvoyer par quoi faire le changement
     
    sed "/^..AA/s/\(.\{X\}\)\(.\{N\}\)/\1${var}/" ${file} > ${file}.tmp
    C'est le \1 qui me manquait

    Merci !

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

Discussions similaires

  1. Sed, Awk script modification de Fstab
    Par Hector1 dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 31/05/2017, 23h41
  2. Réponses: 6
    Dernier message: 29/02/2012, 08h00
  3. Commande AWK ou SED pour modification données dans fichier
    Par desbrandesq dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 29/01/2008, 17h56
  4. [SED - AWK] Recherches du contenu d'un fichier dans un autre
    Par lordduck dans le forum Applications et environnements graphiques
    Réponses: 3
    Dernier message: 22/06/2007, 10h07
  5. [SED - AWK] Concatenation de champs depuis 2 fichiers
    Par lordduck dans le forum Applications et environnements graphiques
    Réponses: 3
    Dernier message: 20/06/2007, 11h15

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