je suis nul en sed et awk mais pourquoi pas remplacer toutes les ; par des \n (à supposer que le fichier soit intégralement comme ça
j'ai donc ceci, en copiant-collant honteusement un sed trouvé sur google pour enlever les espaces au début de chaque ligne
tr ";" \\n < test | sed -e 's/^[ \t]*//'
ce qui me donne
AAA-BBB-CCC-0010
AAA-BBB-CCC-0020
AAA-BBB-CCC-0030
AAA-BBB-CCC-0050
avec un espace à la fin de la deuxième ligne, qu'on pourrait aussi enlever, donc :
tr ";" \\n < test | sed 's/^[ \t]*//;s/[ \t]*$//'
on pourrait ainsi se contenter d'attraper la n-ième ligne pour avoir la valeur. sed '/^$/d' supprime toutes lignes vides.
Sinon, je ne comprends pas trop ce que tu entends par "Je veux séparer une chaîne" ni ce qu'est censée faire ta regexp.
Message édité par blazkowicz le 05-06-2013 à 23:30:20