[linux - bash] explosion chaine de caracteres [Résolu/Fermé]

Signaler
Messages postés
387
Date d'inscription
jeudi 15 janvier 2004
Statut
Membre
Dernière intervention
7 décembre 2007
-
 Nim65s -
Bonjour tout le monde.

Je voudrais savoir s'il existe sous Linux une commande pour exploser une chaine de caractere à partir d'un sépérateur donné et récupérer un élément de cette chaine.

Exemple : save_2005_03_31 donne une fois explosé suivant le caractère '_' donne save ou 2005 ou 03 ou 31 suivant la position que l'on demande.

Au départ j'étais parti sur awk, mais j'ai besoin de pouvoir éclater une chaine unique pas ce qu'il y a dans un fichier... Donc s'il existait une commande capable de faire ça "proprement" ?

Merci d'avance.

Bahan, qui va chercher un moyen sale pendant ce temps ^_^

3 réponses

On peut aussi utiliser cut, c'est plus court ^^

$ echo save_2005_03_31 | cut -f 2 -d _
2005
$ echo save_2005_03_31 | cut -f 3 -d _
03
6
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60511 internautes nous ont dit merci ce mois-ci

Messages postés
21
Date d'inscription
samedi 12 mars 2005
Statut
Membre
Dernière intervention
9 novembre 2005
5
Bonjour à toi

Tu peux très bien le faire avec awk en utilisant sont entrée standard dans un pipe, par exemple :
$ echo save_2005_03_31 | awk 'BEGIN{FS="_"} {print $2}' 
2005
$ echo save_2005_03_31 | awk 'BEGIN{FS="_"} {print $3}' 
03


Voilou

Nicolas
Messages postés
387
Date d'inscription
jeudi 15 janvier 2004
Statut
Membre
Dernière intervention
7 décembre 2007
61
Merci beaucoup

Pb résolu!

Bahan