Rechercher : dans
Par :

[linux - bash] explosion chaine de caracteres

Dernière réponse le 3 aoû 2009 à 00:00:20 B@|-|@N, le 31 mar 2005 à 11:09:49 
 Signaler ce message aux modérateurs

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 ^_^ Close the world.||.txen eht nepO

Meilleures réponses pour « [linux bash] explosion chaine de caracteres » dans :
Exercice assembleur x86 inversion de chaîne VoirIntroduction Notions abordées dans cet exercice Énoncé Rappel Indices Corrigé Explication Introduction Ce petit exercice d'assembleur vise les architectures x86 (Processeurs Intel et Amd 32 bits) et utilise la syntaxe de Nasm, un...
VBScript - Les fonctions de chaînes de caractères VoirLes fonctions de chaînes de caractères Fonction Description Filter(InputStrings, Value[, Include[, Compare]]) Sélectionne des chaînes de caractères parmi un tableau de chaînes...
Les chaînes de caractères en C++ VoirQu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C++, une...
Langage C - Les chaînes de caractères VoirQu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C, une chaîne...

1

np34, le 31 mar 2005 à 12:01:54

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

Répondre à np34

2

B@|-|@N, le 31 mar 2005 à 13:19:35

Merci beaucoup

Pb résolu!

Bahan Close the world.||.txen eht nepO

Répondre à B@|-|@N

3

 Nim65s, le 3 aoû 2009 à 00:00:20

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

Répondre à Nim65s