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 :

Ne pas interpréter des caractères dans une variable.


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 12
    Par défaut Ne pas interpréter des caractères dans une variable.
    Bonjour,

    Je galère sur un truc tout con:

    J'ai un fichier toto contenant les lignes ci-dessous.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TSMXP09,APPSQL01_TSMA,DEFAULT,\\appsql-01\c$
    TSMXP09,APPSQL01_TSMA,DEFAULT,\\appsql-03\c$
    Je traite chaque ligne de ce fichier dans une boucle et je doit extraire le dernier champ

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    cat toto | while read -r LINEBK
    do
    FILESPACEBK=`echo ${LINEBK} | awk -F',' '{ print $4}'`
    done
    mais... le dernier champ contient un \c qui est interprété et je souhaite obtenir:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FILESPACEBK="\\appsql-01\c$"
    Merci de votre aide!!

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

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

    non, non, tout va très bien.

    comment affiches-tu le contenu de ton fichier pour voir les $ finaux ?

    à noter que awk est inutile (cat aussi : UUOC) :
    Code BASH : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    while IFS=',' read -ra ar; do echo "${ar[@]: -1}"; done < toto
    \\appsql-01\c$
    \\appsql-03\c$
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 349
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 349
    Par défaut
    Bonjour,

    Le plus simple est de passer par printf:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $ XX="foo\tbar"
    $ printf "$XX\n"
    foo	bar
    $ printf '%s\n' "$XX"
    foo\tbar

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 12
    Par défaut
    Citation Envoyé par disedorgue Voir le message
    Bonjour,

    Le plus simple est de passer par printf:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $ XX="foo\tbar"
    $ printf "$XX\n"
    foo	bar
    $ printf '%s\n' "$XX"
    foo\tbar


    Super ça marche. merci!
    je n'ai pas trouvé une signification claire de '%s\n'

  5. #5
    Invité
    Invité(e)
    Par défaut
    Salut,

    http://fr.wikipedia.org/wiki/Printf

    Ou avec plusieurs paramètres. Dans ce cas, la lettre qui suit les "%" dans le format correspond à un type de variable :
    string (char*) %s

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 12
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    Bonjour,

    non, non, tout va très bien.

    comment affiches-tu le contenu de ton fichier pour voir les $ finaux ?

    à noter que awk est inutile (cat aussi : UUOC) :
    Code BASH : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    while IFS=',' read -ra ar; do echo "${ar[@]: -1}"; done < toto
    \\appsql-01\c$
    \\appsql-03\c$

    oups... je suis en AIX...

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

Discussions similaires

  1. Stocker des chaines de caractères dans une variables
    Par IBRAHIM MR dans le forum Langage
    Réponses: 3
    Dernier message: 12/04/2014, 18h14
  2. stocké des caractères dans une variable
    Par joe370 dans le forum VBA Access
    Réponses: 3
    Dernier message: 09/07/2007, 13h36
  3. insérer des côtes dans une variable pl/sql
    Par illegalsene dans le forum Langage SQL
    Réponses: 1
    Dernier message: 24/01/2007, 14h20
  4. [Tableaux] Supprimer des caractères dans une chaine
    Par ddubois dans le forum Langage
    Réponses: 10
    Dernier message: 16/12/2006, 13h53
  5. Réponses: 4
    Dernier message: 29/08/2006, 17h44

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