[shell script] Mettre des espaces entre les caractères

Mettre des espaces entre les caractères [shell script] - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 24-04-2009 à 08:48:45    

Bonjour.
Mon problème peut sembler simple, mais je m'arrache la tête dessus.
Voila : je veux remplacer une minuscule collée par une majuscule par une minuscule puis un espace puis cette majuscule. Si je résumé : exempleSimple -> exemple Simple
 
Ce que j'ai essayé :
sed -e 's/"\([a-z]\)\([A-Z]\)"/"\([a-z]\)  \([A-Z]\)"/g' mais ça ne marche pas.
 
Que faire ?  
 
Par avance merci !

Reply

Marsh Posté le 24-04-2009 à 08:48:45   

Reply

Marsh Posté le 24-04-2009 à 08:54:40    


retirer les " qui n'ont rien à faire là ? [:noxauror]
et aussi lire la page de man de sed :o


Message édité par wedgeant le 24-04-2009 à 08:55:04

---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
Reply

Marsh Posté le 24-04-2009 à 09:10:50    

Bon, come d'habitude, j'ai besoin qu'on me mette le nez dessus pour comprendre, mais je met quand même ma solution des fois que quelqu'un ai le même soucis :
 sed -e 's/\([a-z]\)\([A-Z]\)/\1 \2/g'
Merci !

Reply

Marsh Posté le 27-04-2009 à 11:35:28    

Bonjour !  
Pour ne pas créer de multiples topics, je pose ma petite question ici :
J'ai le résultat d'un grep qui  se met sur deux ligne (comprenez grep -e "machin" ...
résultat 1
résultat 2), mais quand je fais un echo dessus, tout va sur le même ligne, et ça je ne veux pas !
Comment faire pour garder cette mise en forme ?
 
Par avance merci !

Reply

Marsh Posté le 27-04-2009 à 15:06:39    

Il faut que tu mettes des double quotes autour de ta variable, de façon à ce que shell ne la découpe pas en mots :

toto=`grep pattern file`
echo "$toto"


Message édité par matafan le 27-04-2009 à 15:07:02
Reply

Marsh Posté le 27-04-2009 à 17:18:42    

En fait, ce n'est pas ma faute, si j'ose dire, mais je met le résultat via un traitement process.cgi, qui me reformate le truc, donc ça ne marche pas. Ce que je vais essayer de faire : mettre un retour à la ligne forcé à la fin de chaque resulata. Comment faire ?
Merci !

Reply

Marsh Posté le 28-04-2009 à 01:06:49    

$ perl -pe 's/([a-z]*)([A-Z]*)/$1 $2/' <<< exempleSimple
exemple Simple

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed