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

Résolu/Fermé
JOBiJOBa2 Messages postés 91 Date d'inscription mardi 13 mai 2008 Statut Membre Dernière intervention 23 avril 2009 - 25 juil. 2008 à 14:54
JOBiJOBa2 Messages postés 91 Date d'inscription mardi 13 mai 2008 Statut Membre Dernière intervention 23 avril 2009 - 25 juil. 2008 à 15:28
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
A voir également:

7 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
25 juil. 2008 à 15:03
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
JOBiJOBa2 Messages postés 91 Date d'inscription mardi 13 mai 2008 Statut Membre Dernière intervention 23 avril 2009 5
25 juil. 2008 à 15:26
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
JOBiJOBa2 Messages postés 91 Date d'inscription mardi 13 mai 2008 Statut Membre Dernière intervention 23 avril 2009 5
25 juil. 2008 à 15:12
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
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
25 juil. 2008 à 15:24
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
JOBiJOBa2 Messages postés 91 Date d'inscription mardi 13 mai 2008 Statut Membre Dernière intervention 23 avril 2009 5 > jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020
25 juil. 2008 à 15:27
Merci cela fonctionne bien.
^^
A+
0
wapette21 Messages postés 66 Date d'inscription lundi 21 juillet 2008 Statut Membre Dernière intervention 7 octobre 2010 5
25 juil. 2008 à 15:18
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
wapette21 Messages postés 66 Date d'inscription lundi 21 juillet 2008 Statut Membre Dernière intervention 7 octobre 2010 5
25 juil. 2008 à 15:21
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
JOBiJOBa2 Messages postés 91 Date d'inscription mardi 13 mai 2008 Statut Membre Dernière intervention 23 avril 2009 5
25 juil. 2008 à 15:22
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
JOBiJOBa2 Messages postés 91 Date d'inscription mardi 13 mai 2008 Statut Membre Dernière intervention 23 avril 2009 5
25 juil. 2008 à 15:24
Moi aussi petite correction, je ne connaissait pas -f1-7

Merci wapette21
A+
^^
0
JOBiJOBa2 Messages postés 91 Date d'inscription mardi 13 mai 2008 Statut Membre Dernière intervention 23 avril 2009 5
25 juil. 2008 à 15:28
Dit donc deux solution à mon problème c'est super.
Merci à vous deux.
0