Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
885 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Expressions régulières et SED

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Expressions régulières et SED

n°1252479
supermexic​ain
Posté le 26-11-2010 à 20:07:30  profilanswer
 

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 :)

mood
Publicité
Posté le 26-11-2010 à 20:07:30  profilanswer
 

n°1252489
Combi_A_Ve​ndre
Posté le 26-11-2010 à 20:52:00  profilanswer
 

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
n°1252493
Combi_A_Ve​ndre
Posté le 26-11-2010 à 20:57:48  profilanswer
 

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
n°1252494
Combi_A_Ve​ndre
Posté le 26-11-2010 à 21:02:52  profilanswer
 

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
n°1252503
Combi_A_Ve​ndre
Posté le 26-11-2010 à 21:35:22  profilanswer
 

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

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Expressions régulières et SED

 

Sujets relatifs
Utilisation avancée de Sed et OccurencesAide pour une commande AWK (ou SED) (ou autre)
[RESOLU] Commande SED : suppresion d'une variable dans un fichier KO[SED/XHTML] Supression d'un NOSCRIPT imbriqué dans un SPAN
[Sed] Remplacer les points par des espaces dans un numéro de téléphonescript avec commande SED
Commande SEDSed et execution d'une commande
traitement d'un fichier de retour d'email d'erreur avec SED[Sed] Intégration dans un script
Plus de sujets relatifs à : Expressions régulières et SED


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR