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 :

Decoupage avec awk


Sujet :

Shell et commandes GNU

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 11
    Points : 8
    Points
    8
    Par défaut Decoupage avec awk
    Bonjour,

    j'ai un fichier du type :

    ora.ISI4PRE.ISI4PRE_DDAF_PHOTO.cs application ONLINE ONLINE bbmapo12v
    ora.ISI4PRE.ISI4PRE_DEPLOY.ISI4PRE1.srv application ONLINE ONLINE bbmapo11v
    ora.ISI4PRE.ISI4PRE_DEPLOY.ISI4PRE2.srv application ONLINE ONLINE bbmapo12v
    ora.ISI4PRE.ISI4PRE_DEPLOY.ISI4PRE3.srv application OFFLINE OFFLINE
    ora.ISI4PRE.ISI4PRE_DEPLOY.ISI4PRE4.srv application OFFLINE OFFLINE
    ora.ISI4PRE.ISI4PRE_DEPLOY.cs application ONLINE ONLINE bbmapo12v
    ora.ISI4PRE.ISI4PRE_WWW_PHOTO.ISI4PRE1.srv application ONLINE ONLINE bbmapo11v
    ora.ISI4PRE.ISI4PRE_WWW_PHOTO.ISI4PRE2.srv application ONLINE ONLINE bbmapo12v
    je voudrai le transformer pour avoir par exemple (rajout en gras) :

    ora.ISI4PRE.ISI4PRE_DDAF_PHOTO.cs cs application ONLINE ONLINE bbmapo12v
    ora.ISI4PRE.ISI4PRE_DEPLOY.ISI4PRE1.srv srv application ONLINE ONLINE bbmapo11v
    avec awk j'arrive a avoir independamment ora.ISI4PRE.ISI4PRE_DDAF_PHOTO.cs et cs application ONLINE ONLINE bbmapo12v par exemple mais pas les 2 ensemble !

    j'utilise pour la premiere partie awk '{print $1}' mon fichier et pour la deuxieme partie awk -F. '{print $NF}' mon fichier

    qqun a une idée??

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

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Points : 1 206
    Points
    1 206
    Par défaut
    Avec sed:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     sed -r 's/(^.*\.)(.*)( application.*$)/\1\2 \2 \3/g' ton-fichier

  3. #3
    Membre éclairé Avatar de BlaireauOne
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    492
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2007
    Messages : 492
    Points : 652
    Points
    652
    Par défaut
    Si la chaîne à dupliquer est toujours en minuscules, la commande suivante fonctionne

    En clair : duplique toute chaîne minuscule suivant un point et précédant la chaîne " application" :

    sed 's/\.\([a-z][a-z]* \)\(application\)/.\1\1\2/' test.txt

  4. #4
    Futur Membre du Club
    Inscrit en
    Avril 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Merci !!!

    Seule petite chose, application n'est pas toujours la et peut etre remplacé par une autre chaine de caractere.
    j'ai trouvé une solution a partir dela votre mais c'est peu orthodoxe

  5. #5
    Futur Membre du Club
    Inscrit en
    Avril 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    sed 's/\.\([A-Za-z][A-Za-z]* \)\([A-Za-z][A-Za-z]*\)/.\1\1\2/' test
    Voila la solution finale, merci

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 17/02/2012, 12h57
  2. decoupage avec awk + sed
    Par killapig dans le forum Shell et commandes GNU
    Réponses: 8
    Dernier message: 12/04/2007, 11h40
  3. Réponses: 5
    Dernier message: 09/01/2005, 20h54
  4. Réponses: 33
    Dernier message: 15/10/2004, 17h19
  5. Problème sur une cmd avec AWK
    Par OrangeBud dans le forum Linux
    Réponses: 3
    Dernier message: 02/06/2004, 11h51

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