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

Linux Discussion :

Déduire une chaine de caractère à patir d'un auter


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    SQLI
    Inscrit en
    Novembre 2011
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : SQLI
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 46
    Par défaut Déduire une chaine de caractère à patir d'un auter
    Bonjour,
    y'a quelqu'un qui une solution plus rapide sans passer par des boucles pour qu'à partir de:

    var1_var2_var3_var4 ===> var1_var3var4-var2.


    Merci d'avance

  2. #2
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    [frpus@lne ~] echo var1_var2_var3_var4 | sed "s/\(var1\)_\(var2\)_\(var3\)_\(var4\)/\1_\3\4_\2/"
    var1_var3var4_var2
    [frpus@lne ~]
    /!\ attantion quand tu vas remplacer par tes vraies variables au quotages /!\

  3. #3
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    Salut,

    Avec awk aussi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ echo "var1_var2_var3_var4" | awk -F'_' '{ print $1"_"$3$4"-"$2 }'
    var1_var3var4-var2
    Et avec sed sans tenir compte des valeurs de "VARn" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ echo "var1_var2_var3_var4" | sed -r 's/([^_]*)_([^_]*)_([^_]*)_(.*)/\1_\3\4-\2/'
    var1_var3var4-var2

  4. #4
    Membre averti
    Homme Profil pro
    SQLI
    Inscrit en
    Novembre 2011
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : SQLI
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 46
    Par défaut
    Merci bcp pour vos réponsés
    ça m'est très utile.

  5. #5
    Membre averti
    Homme Profil pro
    SQLI
    Inscrit en
    Novembre 2011
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : SQLI
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 46
    Par défaut
    Dans le me contexte j'ai un autre petit probleme c'est que la chaine se termine par l'extension.
    en gros meme traitement plus l'extension:

    var1_var2_var3_var4.txt ===> var1_var3var4-var2.txt ?

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    Awk :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ echo "var1_var2_var3_var4.txt" | awk -F'[_.]' '{ print $1"_"$3$4"-"$2"."$5 }'
    var1_var3var4-var2.txt
    Sed :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ echo "var1_var2_var3_var4.txt" | sed -r 's/([^_]*)_([^_]*)_([^_]*)_([^.]*)(.*)/\1_\3\4-\2\5/'
    var1_var3var4-var2.txt

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 23/12/2013, 17h40
  2. Crypter une chaine de caractères
    Par Yabo dans le forum Réseau
    Réponses: 18
    Dernier message: 20/11/2004, 00h04
  3. Réponses: 9
    Dernier message: 17/01/2003, 12h45
  4. Lire Une Chaine De Caractères
    Par Jonathan_Korvitch dans le forum C
    Réponses: 12
    Dernier message: 07/01/2003, 06h37
  5. Réponses: 2
    Dernier message: 06/12/2002, 08h50

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