Bonjour.
j'ai une expression contenant des lettres et des numéros :
MyExpression="2008Y03M12D"
Comment enlever les lettres pour n'avoir que "20080312" ??
Merci
Version imprimable
Bonjour.
j'ai une expression contenant des lettres et des numéros :
MyExpression="2008Y03M12D"
Comment enlever les lettres pour n'avoir que "20080312" ??
Merci
utilises sed
par exemple :
echo 444t4i44 | sed -e "s/[a-z]\{1\}//"
remplace la première suite de 1 lettre par rien
ce qui donne
4444i44
....^remplacement de t par "rien"
s= substitute prend le paramètre g pour le faire de façon globale et pas que sur la première occurrence.
de plus tu peux isoler un bout de chaine par \(.......\)
Maintenant à toi de jouer pour trouver comment le faire (avant d'aller voir la solution plus bas dans le message)....
pour t'habituer aux regexps :
http://www.shellunix.com/regexp.html
des exemples plus concrets :
http://sed.sourceforge.net/sed1line_fr.html
Code:
1
2
3 obelix(root/root)[PREC]/root>echo "2008Y03M12D" | sed "s/\([A-Za-z]\)//g" 20080312 obelix(root/root)[PREC]/root>
oui j'ai décomposé juste pour etre "clair"
avec GNU sed la syntaxe simplifiée marche dans ce cas précis.
bon merci pour les reponses et pour les liens surtout...
j'ai trouvé une maniére encore plus simple de faire, en utilisant tr :
Code:echo "2008Y03M12D" | tr -d 'a-zA-Z'
et le tour est joué..