Expressions régulières et SED

Expressions régulières et SED - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 26-11-2010 à 20:07:30    

Bonsoir à tous,  
 
en plein travail sur les expression régulière, j'en ai deux qui me posent soucis :  
 
1 ) sed -e '/b.\{3,\}n/,/e.d/{s/.*//g;s/.*/ body/}'  
 
2 ) sed -n -e '3,5{=;s/\([[:lower:]]\).*\([[:lower:]]\)/\1*\2/g;p}'  
 
 
J'ai des idées pour la 2 (remplacement des caractères minuscules des lignes 3 4 et 5 par des *), mais sinon la 1 aucune aucune idée !  
 
Si des pros du regex passent et veulent bien m'éclairer :D
 
merci d'avance et bonne soirée :)

Reply

Marsh Posté le 26-11-2010 à 20:07:30   

Reply

Marsh Posté le 26-11-2010 à 20:52:00    

J'ai l'impression que ça utilise les adresses, sauf que l'adresse est issue aussi d'une regexp : /b.\{3,\}n/
Donc, si dans ton texte, tu as, un b, au moins 3 caractères, puis un n, c'est remplacé par la virgule. S'il y a un chiffre avant, il devient l'adresse pour la suite du script :
"3booooon" devient "3,"

 

La regexp devient alors :
3,/e.d/{s/.*//g;s/.*/ body/}

 

Et là on a une commande, je retourne étudier ça.
C'est passionnant, je connaissait pas du tout cette utilisation. J'ai peut être tout faux d'ailleurs.

 

vw.


Message édité par Combi_A_Vendre le 26-11-2010 à 20:53:47

---------------
The best way to accelerate a computer running windows is at 9.8m.s-2
Reply

Marsh Posté le 26-11-2010 à 20:57:48    

Donc, si à la 3ème ligne, on trouve "e.d" alors on exécute s/.*//g;s/.*/ body/ sur cette ligne
C'est à dire qu'on supprime toute succession de caractères puis qu'on remplace l'espace restant par " body"
 
Bon, j'ai surement tout faux, je vais essayer de vérifier ça.


---------------
The best way to accelerate a computer running windows is at 9.8m.s-2
Reply

Marsh Posté le 26-11-2010 à 21:02:52    

Bon, c'est confirmé, j'ai pas grand chose de bon.

Code :
  1. 3booooooon
  2. eed
  3. eed
  4. eed
  5. ee
 

Donne

Code :
  1. body
  2. body
  3. eed
  4. eed
  5. ee
 

Par contre, si j'utilise le fichier suivant, rien n'est changé :

Code :
  1. 3bn
  2. eed
  3. eed
  4. eed
  5. ee


Message édité par Combi_A_Vendre le 26-11-2010 à 21:04:08

---------------
The best way to accelerate a computer running windows is at 9.8m.s-2
Reply

Marsh Posté le 26-11-2010 à 21:35:22    

En fait, j'ai l'impression que ça remplace par " body" toutes les lignes comprises entre "b.\{3,\}n" et "e.d". Sans vraiment comprendre pourquoi?


---------------
The best way to accelerate a computer running windows is at 9.8m.s-2
Reply

Sujets relatifs:

Leave a Replay

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