[KSH] Récupération dans une chaine après ;

Résolu
JOBiJOBa2 Messages postés 93 Statut Membre -  
JOBiJOBa2 Messages postés 93 Statut Membre -
Bonjour à tous,
Je ne sais pas récupérer un bout de chaine à gauche à partir de la 7ème virgule.

Par exemple:
var="1;45;JOBi;JOBa;étudiant;M;SARTHE;LE MANS;ATT"

Résulat attendu :
1;45;JOBi;JOBa;étudiant;M;SARTHE  (avec ou sans la virgule)

J'ai seulement :
echo ${var##*;}
ATT

C'est tout ce que je sais faire.
Comment est-ce que je peut faire?

Merci d'avance
^^

PS : en KSH bien sûr
Configuration: Windows XP
Firefox 3.0.1

7 réponses

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,

    Une façon de faire :
    [tmpfs]$ echo ${var}
    1;45;JOBi;JOBa;étudiant;M;SARTHE;LE MANS;ATT
    
    [tmpfs]$ echo ${var} | sed 's/;/\t/7;s/\t.*//'
    1;45;JOBi;JOBa;étudiant;M;SARTHE
    
    [tmpfs]$
    ;-))
    0
    1. JOBiJOBa2 Messages postés 93 Statut Membre 5
       
      Jipicy j'aimerai bien savoir comment avec la commende sed pourrai fonctionner pour mon cas.
      Cela m'intéresserai.
      Merci de ta réponse.
      0
  2. JOBiJOBa2 Messages postés 93 Statut Membre 5
     
    Mon résultat est :
    1;45;JOBi;JOBa;e

    et quand je fait :
    var="1;45;JOBi;JOBa;eudiant;M;SARTHE;LE MANS;ATT"
    echo ${var} | sed 's/;/\t/7;s/\t.*//'
    1;45;JOBi;JOBa;eudian

    Il y a un problème avec les "t"
    ^^
    0
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      Remplace le "\t" par un caractère quelconque susceptible de ne pas se trouver dans ta chaîne :
      echo ${var} | sed 's/;/%/7;s/%.*//'
      ;-))
      0
      1. JOBiJOBa2 Messages postés 93 Statut Membre 5 > jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention  
         
        Merci cela fonctionne bien.
        ^^
        A+
        0
  3. wapette21 Messages postés 68 Statut Membre 5
     
    Bonjour,

    Tu peut essayer ca : echo $var | cut -f1 -d;
    option -d? te permet de définir ton séparateur et -f? le nombre de caractère a prendre.
    0
  4. wapette21 Messages postés 68 Statut Membre 5
     
    petite correction l'option f? te permet de donner la position de ta chaine exemple f7 = SARTHE donc pour ton cas c'est f1-7

    désoler a++
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. JOBiJOBa2 Messages postés 93 Statut Membre 5
     
    Oui j'y avais pensé, mais cela me donne que SARTHE au lieu de 1;45;JOBi;JOBa;eudiant;M;SARTHE.

    Merci quand même, si tu as une idée n'hésite pas.

    ^^
    0
  7. JOBiJOBa2 Messages postés 93 Statut Membre 5
     
    Moi aussi petite correction, je ne connaissait pas -f1-7

    Merci wapette21
    A+
    ^^
    0
  8. JOBiJOBa2 Messages postés 93 Statut Membre 5
     
    Dit donc deux solution à mon problème c'est super.
    Merci à vous deux.
    0