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 :

awk: pouvoir reproduire toutes les fonctions de sed?


Sujet :

Shell et commandes GNU

  1. #1
    Membre éprouvé

    Profil pro
    Grand Timonier des Chats
    Inscrit en
    Décembre 2011
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Grand Timonier des Chats

    Informations forums :
    Inscription : Décembre 2011
    Messages : 884
    Par défaut awk: pouvoir reproduire toutes les fonctions de sed?
    Bonjour,

    Pour des raisons de lisibilité et de maintenance, j'aimerais réécrire un script awk/sed en un seul script awk. Cependant, je ne trouve pas d'équivalent awk à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed 's/[xX]\([1-9];\)/X00\1/gp' <${RAW}>${INPUT}
    Cette ligne reconnais toutes les expressions du type Xn, où n est un chiffre, et les transforme en X00n.

    Est-ce que je passe à côté de quelque chose, ou n'est-ce rééllement pas possible en awk? (sachant que mes données m'imposent de garder exactement la même regex).

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $ cat f
    Lorem ipsum dolor x6; it amet, X7; consectetur adipiscing elit. 
    Nunc consectetur nulla erat, sed faucibus libero placerat eu. 
    Cras vitae x5; malesuada x1; metus. 
    Aenean eros nisi, cursus id vulputate a, 
    auctor eu tortor. X0; Proin accumsan massa et aliquam iaculis. 
    Praesent non sem eros. 
    Morbi accumsan mauris sed nulla congue viverra. 
    Suspendisse ultrices iaculis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $ awk '{print gensub(/[xX]([0-9];)/, "X00\\1", "g")}' f
    Lorem ipsum dolor X006; it amet, X007; consectetur adipiscing elit. 
    Nunc consectetur nulla erat, sed faucibus libero placerat eu. 
    Cras vitae X005; malesuada X001; metus. 
    Aenean eros nisi, cursus id vulputate a, 
    auctor eu tortor. X000; Proin accumsan massa et aliquam iaculis. 
    Praesent non sem eros. 
    Morbi accumsan mauris sed nulla congue viverra. 
    Suspendisse ultrices iaculis

  3. #3
    Membre éprouvé

    Profil pro
    Grand Timonier des Chats
    Inscrit en
    Décembre 2011
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Grand Timonier des Chats

    Informations forums :
    Inscription : Décembre 2011
    Messages : 884
    Par défaut
    Merci, je n'avais encore utilisé gensub. Je ne sais pas comment j'ai pu manquer cette fonction

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

Discussions similaires

  1. [Notepad++] Afficher le nom de toutes les fonctions du code source
    Par honeydew dans le forum Autres Logiciels
    Réponses: 6
    Dernier message: 13/01/2014, 11h49
  2. Lister toutes les fonctions ou procedure
    Par ronan_c dans le forum Oracle
    Réponses: 6
    Dernier message: 21/07/2006, 14h07
  3. Comment s'y retrouver, parmis toute les fonctions ?
    Par AsmCode dans le forum OpenGL
    Réponses: 32
    Dernier message: 25/10/2005, 10h26
  4. Réponses: 3
    Dernier message: 08/08/2004, 21h35
  5. Réponses: 7
    Dernier message: 24/05/2003, 15h56

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