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 :

Comment gérer un double espace en tcsh ?


Sujet :

Shell et commandes GNU

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Octobre 2006
    Messages : 14
    Points : 16
    Points
    16
    Par défaut Comment gérer un double espace en tcsh ?
    Bonjour,
    je travaille de plus en plus en tcsh sous OSX pour automatiser certaines tâches.
    Un problème persiste sans que j'arrive à le régler. Je m'explique : je cherche à traiter des fichiers dont le nom peut contenir plusieurs espaces consécutifs (au moins 2 suffisent à créer le problème).

    Prenons un dossier /mon_dossier contenant un seul fichier dont le nom contient 2 espaces comme "fichier test" (les 2 espaces n'apparaissent pas ici mais c'est OK dans la partie CODE qui suit), il suffit de faire le script suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #!/bin/tcsh -f
    ls /mon_dossier >! ~/liste.txt # pour enregistrer le nom du fichier dans liste.txt
    cat ~/liste.txt # liste.txt contient bien "fichier  test" avec 2 espaces
    set ma_variable = `cat ~/liste.txt` # pour récupérer le nom du fichier
    echo $ma_variable # et là les 2 espaces ont été ramenés à 1 espace "fichier test" !
    rm -rf ~/liste.txt # pour supprimer liste.txt
    J'ai beau essayer toutes les ruses que je connais pour contourner le probleme (quote, double quote, ...), rien n'y fait. Alors que ça marche très bien en utilisant des variables en mémoire, je suis obligé de passer par un fichier texte dans mon cas et je bute sur ce problème.

    Un ami me dit que sous bash (et autres sh), il faut juste changer la variable IFS (Internal Field Separator) qui gère le(s) caractère(s) de séparation d'une liste de valeurs dans une variable. Y a-t-il une équivalence en tcsh ?

    Environnement : MacOSX 10.4.7 (Tiger) et tcsh.

    Merci d'avance de votre aide.

  2. #2
    Membre à l'essai
    Inscrit en
    Octobre 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Octobre 2006
    Messages : 14
    Points : 16
    Points
    16
    Par défaut
    J'ai reformulé mon message pour plus de clarté.

    Y a personne qui bosse en tcsh ?

  3. #3
    Membre à l'essai
    Inscrit en
    Octobre 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Octobre 2006
    Messages : 14
    Points : 16
    Points
    16
    Par défaut
    On m'a donné la solution que je reproduis ici au cas où ça intéresse quelqu'un.

    C'était tout con mais c'est souvent comme ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #!/bin/tcsh -f
    ls /mon_dossier >! ~/liste.txt # pour enregistrer le nom du fichier dans liste.txt
    cat ~/liste.txt # liste.txt contient bien "fichier  test" avec 2 espaces
    set ma_variable = `cat ~/liste.txt` # pour récupérer le nom du fichier
    echo $ma_variable # et là les 2 espaces ont été ramenés à 1 espace "fichier test" !
    rm -rf ~/liste.txt # pour supprimer liste.txt
    et bien il ne manquait pas grand chose :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #!/bin/tcsh -f
    ls /mon_dossier >! ~/liste.txt
    cat ~/liste.txt
    set ma_variable = "`cat ~/liste.txt`"         # notez les double quotes
    echo "$ma_variable"                           # et là aussi et maintenant les 2 espaces sont bien là !
    rm -rf ~/liste.txt

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 26/11/2006, 21h10
  2. Réponses: 2
    Dernier message: 08/07/2005, 10h40
  3. Réponses: 2
    Dernier message: 24/04/2005, 13h17
  4. Réponses: 1
    Dernier message: 26/02/2005, 12h55
  5. Comment gérer les espaces blancs?
    Par Lambo dans le forum XML/XSL et SOAP
    Réponses: 10
    Dernier message: 16/05/2003, 09h44

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