[linux - bash] explosion chaine de caracteres

Résolu/Fermé
B@|-|@N Messages postés 386 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 7 décembre 2007 - 31 mars 2005 à 11:09
 Nim65s - 3 août 2009 à 00:00
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 ^_^
A voir également:

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
np34 Messages postés 21 Date d'inscription samedi 12 mars 2005 Statut Membre Dernière intervention 9 novembre 2005 5
31 mars 2005 à 12:01
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
3
B@|-|@N Messages postés 386 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 7 décembre 2007 62
31 mars 2005 à 13:19
Merci beaucoup

Pb résolu!

Bahan
1