modifier casse d'une chaine [bash] - Shell/Batch - Programmation
Marsh Posté le 09-04-2006 à 00:35:34
méthode bourrin:
utiliser ``tr`` pour mettre tout en majuscule ou tout en minuscule:
Code :
|
Pour plus de précision, utiliser ``awk``:
Code :
|
awk est un mini language de traitement par ligne.
Pour les puristes d'unix, utiliser ``sed`` (désolé, pas d'exemple).
Se reporter aux pages de manuel pour plus d'infos sur ces commandes.
Marsh Posté le 09-04-2006 à 10:33:06
autre solution :
Code :
|
Marsh Posté le 09-04-2006 à 12:32:27
nargy a écrit : Pour les puristes d'unix, utiliser ``sed`` (désolé, pas d'exemple). |
Je vois pas en quoi utiliser "sed" est plus "puriste" que "tr" ou "awk"...
Un bon unixien est un unixien qui utilise l'outil qu'il faut là où il faut. Et entre les deux instructions suivantes
echo $var | sed -e "s/a/A/g" -e "s/b/B/g" -e "s/c/C/g" -e "s/d/D/g" -e ... -e "s/z/Z/g"
echo $var |tr '[a-z]' '[A-Z]'
Pour moi, il n'y a pas photo sur l'outil que je choisirai...
Marsh Posté le 09-04-2006 à 14:56:58
merci beaucoup de vos réponses !
je vais pouvoir continuer mon petit script
Marsh Posté le 09-04-2006 à 16:54:33
Citation : Un bon unixien est un unixien qui utilise l'outil qu'il faut là où il faut. Et entre les deux instructions suivantes |
Comme quoi tu ne connait pas sed, il est tout à fait possible de faire aussi court qu'avec awk, mais tu ne me fera pas ouvrir la doc de sed pour que je te le prouve!
Marsh Posté le 09-04-2006 à 21:11:44
nargy a écrit :
|
Je connais très bien sed (qui est l'équivalent en ligne de "ed" sur lequel est basé "vi"...) mais j'ai beau chercher... je ne vois pas comment faire mieux que ma première instance...
Marsh Posté le 09-04-2006 à 21:55:58
ReplyMarsh Posté le 09-04-2006 à 22:24:06
ouais bah franchement c'est de la masturbation de cerveaux
il vaut mieux faire au plus simple et le plus lisible possible
Marsh Posté le 11-04-2006 à 08:02:54
nargy a écrit : echo coucou | sed -e 's/\(.\{3\}\)/\U\1/' |
"backslash U" => je connaissais pas !!!
Joli. J'ai appris un truc de plus.
Mais malgré ça je préfère mon petit "tr"...
Marsh Posté le 09-04-2006 à 00:25:02
bonjour à tous,
je souhaiterais comment changer la casse d'une chaine, et meme plus précisément d'un caractère d'une chaine.
je ne sait pas si une fonction fait déja sa ou pas mais j'ai pas trouvé grand chse et je suis vraiment débutant en bash.
le but serait de pouvoir changer dans le script la casse d'un mot passé en paramètre.
genre avec un appel monscript pArAmEtRe
que dans le script j'arrive à Parametre par exemple, ou a PARAmetre
c'est pour mettre en évidence certaines parties de mots.
je vous remercie