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 :

Découper une chaîne dans une variable.


Sujet :

Shell et commandes GNU

  1. #1
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 79
    Par défaut Découper une chaîne dans une variable.
    Bonjour,

    Après quelques recherches (en français, en anglais) et quelques "man" infructueux, je me tourne vers vous.

    Ce que je cherche à faire est relativement simple.

    En ksh, j'ai une variable toto, contenant la chaîne "bonjour à tous":
    J'aimerai affecter à une variable titi la chaîne présente dans la variable toto, exceptés les 3 premiers caractères.
    J'obtiendrai alors une variable titi contenant la chaîne "jour à tous".

    J'ai essayé avec le awk, le sed et le cut, mais en vain.
    Le cut fonctionne bien, mais mon problème est que la longueur de la chaîne présente dans la variable toto est variable..

    D'avance, merci pour votre aide.

    Bien cordialement,
    pressdell.

  2. #2
    Membre très actif
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    196
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2009
    Messages : 196
    Par défaut
    Le man concerné est le man bash :


  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,

    Citation Envoyé par mvvvv Voir le message
    Le man concerné est le man bash :

    T'es sûr ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $ toto="bonjour à tous"
     
    $ echo ${toto:0:-3}
    bash: -3 : expression de sous-chaîne négative
     
    $ echo ${toto:3}
    jour à tous
     
    $

  4. #4
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 79
    Par défaut
    Bonjour mvvvv, et merci pour ta réponse plus que rapide.

    Je viens de tester, et l'erreur suivante apparaît :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monksh.ksh[66]: titi="${toto:0:-3}": 0403-011 Substitution non valide pour cette commande.
    Lorsque je fais un "man bash", en retour on me dit que bash n'est pas installé...

  5. #5
    Membre très actif
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    196
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2009
    Messages : 196
    Par défaut
    bha oui ! je faisais déjà ça en ksh 93



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ~ > toto="bonjour à tous"
    ~ > echo ${toto:0:-3}
    bonjour à t
    ~ > bash -version
    GNU bash, version 4.2.24(1)-release (x86_64-pc-linux-gnu)
    Copyright (C) 2011 Free Software Foundation, Inc.
    Licence GPLv3+ : GNU GPL version 3 ou ultérieure <http://gnu.org/licenses/gpl.html>
     
    Ceci est un logiciel libre ; vous être libre de le modifier et de le redistribuer.
    Aucune garantie n'est fournie, dans la mesure de ce que la loi autorise.
    ~ >

  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
    Citation Envoyé par mvvvv Voir le message
    bha oui ! je faisais déjà ça en ksh 93 [/code]
    Oups n'avions pas vu que la demande concernait le shell ksh

    Toutes mes confuses

  7. #7
    Membre très actif
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    196
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2009
    Messages : 196
    Par défaut
    lol pas mieux pour moi qui suis parti sur le bash ...

    sinon ceci marche sous ksh normalement :

    ... enfin ... peut-être ...

    et le man est man ksh ... bien évidemment

  8. #8
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 79
    Par défaut
    Merci à vous deux!

    La commande fonctionnant en KSH est la suivante :
    La commande de mvvvv :
    supprime les 3 derniers (% = fin, et # = début?)

  9. #9
    Membre très actif
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    196
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2009
    Messages : 196
    Par défaut
    Je retourne me coucher ... réveillez moi au printemps suivant ...

    doit aussi fonctionner

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

Discussions similaires

  1. [POO] dans une classe, appeler une fonction dans une méthode
    Par arnaudperfect dans le forum Langage
    Réponses: 3
    Dernier message: 26/08/2007, 23h04
  2. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 10h13
  3. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48
  4. Trouver la position d'une chaîne dans une chaîne
    Par taka10 dans le forum Langage
    Réponses: 1
    Dernier message: 03/01/2007, 23h18
  5. Réponses: 4
    Dernier message: 11/08/2006, 13h47

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