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

  FORUM HardWare.fr
  Linux et OS Alternatifs

  Cherche explication sur les Regular Expressions et sed

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Cherche explication sur les Regular Expressions et sed

n°82726
Piksou
Posté le 29-03-2002 à 18:15:22  profilanswer
 

Voilà, en fait, g un pb dans ma lecture de rute (Rute User's Tutorial and Exposition)
 
En fait, dans la partie sur le scripting e la manipulation de chaînes, on lit ceci: lien
On tape:

Code :
  1. sed -e 's/\(<[^ ]*>\)\([ ]*\)\(<[^ ]*>\)/\3\2\1/g'


Eplication de l'auteur: Here sed is searching for the expression \<.*\>[ ]*\<.*\>. From the chapter on regular expressions, we can see that it matches a whole word, an arbitrary amount of whitespace, and then another whole word. The \( \) groups these three so that they can be referred to in <replace-text>. Each part of the regular expression inside \( \) is called a subexpression of the regular expression. Each subexpression is numbered--namely, \1, \2, etc. Hence, \1 in <replace-text> is the first \<[^ ]*\>, \2 is [ ]*, and \3 is the second \<[^ ]*\>.  
 
Je vous recommande de lire sur le lien, c plus beau (c le point 8.7)
 
MAIS mon pb est le suivant: je ne vois pas en quoi le paramètre de sed correspond à l'expression indiquée (avec la quelle je suis d'accord, si je me refère au chapitre adéqueat de rute. Du reste, il n'y a même pas de point....
et malgré un info sed, je capte aps :(
quelqu'un pour me sauver ?

 

[jfdsdjhfuetppo]--Message édité par Piksou--[/jfdsdjhfuetppo]


---------------
« Le verbe "aimer" est le plus compliqué de la langue. Son passé n'est jamais simple, son présent n'est qu'imparfait et son futur toujours conditionnel. » Jean Cocteau
mood
Publicité
Posté le 29-03-2002 à 18:15:22  profilanswer
 

n°82983
Piksou
Posté le 30-03-2002 à 13:07:16  profilanswer
 

personne ? :(


---------------
« Le verbe "aimer" est le plus compliqué de la langue. Son passé n'est jamais simple, son présent n'est qu'imparfait et son futur toujours conditionnel. » Jean Cocteau
n°83161
Piksou
Posté le 31-03-2002 à 04:17:38  profilanswer
 

:cry:  :cry:  :cry:  :cry:


---------------
« Le verbe "aimer" est le plus compliqué de la langue. Son passé n'est jamais simple, son présent n'est qu'imparfait et son futur toujours conditionnel. » Jean Cocteau
n°83166
monokrome
nocturne
Posté le 31-03-2002 à 10:35:34  profilanswer
 

essaye d'aller voir sur irc sur un chan #linuxfr ou #linux, y a des  monstres la-dedans  ;)


---------------
SELECT girls FROM world WHERE passion="info";
n°83182
Piksou
Posté le 31-03-2002 à 13:56:36  profilanswer
 

ouais mais bon, ici aussi :/
bon, vais envoyer un PM à ping :D


---------------
« Le verbe "aimer" est le plus compliqué de la langue. Son passé n'est jamais simple, son présent n'est qu'imparfait et son futur toujours conditionnel. » Jean Cocteau
n°83242
Hellfire
Fuck you, Mr. Bitey!
Posté le 31-03-2002 à 19:06:41  profilanswer
 

pik ben ouais t'as vu la tete de ta question  :heink:  
 
 
y'a personne qui veut repondre, la plupart des gens ne comprennent pas la question  :D
 
edit: merde c le pseudo du frangin  :fou:  :lol:

 

[jfdsdjhfuetppo]--Message édité par Hellfire--[/jfdsdjhfuetppo]


---------------
Why do black people only have nightmares? Because we shot the last one that had a dream
n°83247
Piksou
Posté le 31-03-2002 à 19:51:05  profilanswer
 

ceux qui ne comprennent pas, c'est qu'ils n'ont pas la compétence pour me répondre...
Ceux suceptibles de pouvoir el faire comprendront parfaitment :na:
minuspluuuuuuuuuuuuuus :cry:


---------------
« Le verbe "aimer" est le plus compliqué de la langue. Son passé n'est jamais simple, son présent n'est qu'imparfait et son futur toujours conditionnel. » Jean Cocteau
n°83278
Profil sup​primé
Posté le 31-03-2002 à 23:07:19  answer
 

[:totozzz]  
 
cai encore ton pascal tout moche qui pue?

n°83291
Jar Jar
Intaigriste
Posté le 31-03-2002 à 23:23:11  profilanswer
 

Bah après essai, on dirait que [^ ] équivaut à un point, mais j'ai bien du mal à voir pourquoi. Et j'ai du mal à voir pourquoi ils n'utilisent pas un point (puisque ça marche).


---------------
« No question is too silly to ask, but, of course, some are too silly to answer. » -- Perl book
n°83358
Piksou
Posté le 01-04-2002 à 10:28:45  profilanswer
 

Jeannot: nan, ça dépasse tès largement le niveau de l'école, ça ;)
C'est du loisirs (oui, je sai, g pas des loisirs normaux :D)
Jar Jar: merci bcp, du oup, g touvé : en fait, le truc, c que ^kekchose signidfie "tous les caracs sauf kekchose"
C truc doit donc vouloir dire "tout sauf expace", mais les crochets en plus, c bizarre...


---------------
« Le verbe "aimer" est le plus compliqué de la langue. Son passé n'est jamais simple, son présent n'est qu'imparfait et son futur toujours conditionnel. » Jean Cocteau
mood
Publicité
Posté le 01-04-2002 à 10:28:45  profilanswer
 

n°83390
Jar Jar
Intaigriste
Posté le 01-04-2002 à 12:35:49  profilanswer
 

Piksou a écrit a écrit :

Jar Jar: merci bcp, du oup, g touvé : en fait, le truc, c que ^kekchose signidfie "tous les caracs sauf kekchose"
C truc doit donc vouloir dire "tout sauf expace", mais les crochets en plus, c bizarre...


Ah ben oui, je suis con... Je confonds encore le ^ du grep et celui des regexp...


---------------
« No question is too silly to ask, but, of course, some are too silly to answer. » -- Perl book
n°83409
Profil sup​primé
Posté le 01-04-2002 à 13:39:01  answer
 

cai comme en en c avec scanf
scanf( "[^abc]", nom_de_variable );  [:pyropsy]

n°83414
Jar Jar
Intaigriste
Posté le 01-04-2002 à 13:51:13  profilanswer
 

SirJeannot a écrit a écrit :

cai comme en en c avec scanf
scanf( "[^abc]", nom_de_variable );  [:pyropsy]


On peut utiliser des regexp dans les scanf ? Je tombe des nues, là. C'est la top classe !


---------------
« No question is too silly to ask, but, of course, some are too silly to answer. » -- Perl book
n°83415
Profil sup​primé
Posté le 01-04-2002 à 13:53:55  answer
 

je crois bien, aux dernieres nouvelles ca marchait avec un des mes programmes
 
par contre je ne savait pas que cette méthode avait un nom aussi savant  [:thesphinx]

n°83918
Piksou
Posté le 03-04-2002 à 12:39:16  profilanswer
 

Hum, j'ai encore un prob :D
 
Voilà, je prends le fichier texte suivant:
 
Je fais un test
c drôle 192.168.123.1
non ?
si
vr ver vr erg  
 
et j'y applique la ligne de commande suivante:
 
cat test | sed -e '1,1D' |sed -e '2,5D' |sed -e 's/\(\<[^ ]*\>\)\(\<[ ]*\>\)\(\<[^ ]*\>\)\(\<[ ]*\>\)\(\<[^ ]\>\)/\5/g'
 
Mon but (pour l'instant) est d'extraire l'ip d'une carte d'un résultat de ifconfig.
Ici, j'ai cherché à isoler le 192.168.123.1 (mais a priori, on s'en fout: ça devrait marcher pareil pour tout)
Le cat marche, il affiche le fichier. Les deux premier sed aussi: seul la ligne 2 survit.
Mais le 3e est inopérant alors que je ne vois aps ce qui cloche: c'est la même logique que dans l'exemple, de rute (cf link) ou l'auteur extrait les tailles de fichier d'un ls.
en théorie, j'espérais le découpage suivant:
1: un mot ([^ ]*) (ici, c)
2: une suite d'espaces ([ ]*) (ici, un seul)
3: un mot ([^ ]*) (ici, drôle)
4: une suite d'espaces ([ ]*) (ici, un seul)
5: un mot ([^ ]*) (ici, l'adresse)
 
nous voilà au / n°2, j'affiche juste le 5, donc juste l'IP et voilà...
oui mais non !
il m'affiche toute la ligne :sweat:
pkoi ?

n°84298
Piksou
Posté le 04-04-2002 à 13:05:44  profilanswer
 

tssss, pour troller sur mdk/deb ou vi/emacs, ya du monde mais pour me sortir de ma merde avec sed, ya plus personne :p

n°84329
arsunik
ma tuxitude me beastifie
Posté le 04-04-2002 à 14:14:50  profilanswer
 

Piksou a écrit a écrit :

tssss, pour troller sur mdk/deb ou vi/emacs, ya du monde mais pour me sortir de ma merde avec sed, ya plus personne :p  




 
Si tu posais tes questions clairement.
 
ici les \<\> (normallement délimiteur de mot pour certaines cregexp mais en sed je ne crois pas que ça marche...).
Essaie donc sans :
sed -e 's/\([^ ]*\)\([ ]*\)\([^ ]*\)\([ ]*\)\(\s*\)/\5/g'  
Tu peux aussi te passer de cat et tout regrouper dans un seul sed (pas besoin de faire 4 pipes).
 
Perl pow@ :
s:(\S+)(\s+)(\S+)(\s+)(\S+):\5:g

n°84415
Piksou
Posté le 04-04-2002 à 17:56:10  profilanswer
 

Arsunik: je plaisantais ;) (y avait des smiles pour que ça soit clair :o)
je vais tester ta version sans les <>
pour regouper les sed, j'imagine, mais virer le cat, je vois pas. bof, je ferais un petit info sed...
merci anyway ;)
PS: c pas clair comme façon de poser mes questions ? trop long ? trop détaillé ? manque des trucs ?


---------------
« Le verbe "aimer" est le plus compliqué de la langue. Son passé n'est jamais simple, son présent n'est qu'imparfait et son futur toujours conditionnel. » Jean Cocteau
n°84429
minusplus
Posté le 04-04-2002 à 18:47:54  profilanswer
 

Code :
  1. perl -e '($ip) = (`ifconfig eth0` =~ /inet addr:((?:\d+\.){3}\d+)/); print $ip;'

n°84546
mazee
De sortie
Posté le 05-04-2002 à 00:26:04  profilanswer
 

tiens ya des hierogliphe sous linux?


---------------
Je suis perdus mais c'est pas grave
n°84547
minusplus
Posté le 05-04-2002 à 00:44:02  profilanswer
 

y'a bien Ben harper ki a essayé de monter un cluster sous linux ! :D

n°84551
mazee
De sortie
Posté le 05-04-2002 à 00:59:31  profilanswer
 

minusplus a écrit a écrit :

y'a bien Ben harper ki a essayé de monter un cluster sous linux ! :D  




 
ouui mais ben harper il y connais rien a linux :D alors tout compte fait il vas d'abord essayer de monter un dns :p


---------------
Je suis perdus mais c'est pas grave
n°84552
911GT3
en roue libre
Posté le 05-04-2002 à 01:01:41  profilanswer
 

t'aimes avoir mal non ? [:dark_schneider]

n°84553
mazee
De sortie
Posté le 05-04-2002 à 01:06:27  profilanswer
 

911GT3 a écrit a écrit :

t'aimes avoir mal non ? [:dark_schneider]  




hooo  oui :love: mount moa :D


---------------
Je suis perdus mais c'est pas grave
n°84554
minusplus
Posté le 05-04-2002 à 01:07:04  profilanswer
 

:lol: kal band de moolz ! :D
 
 
 
 
(j'ai honte ! :/)
 
 
 
:D

n°84556
mazee
De sortie
Posté le 05-04-2002 à 01:09:28  profilanswer
 

minusplus a écrit a écrit :

:lol: kal band de moolz ! :D
 
 
 
 
(j'ai honte ! :/)
 
 
 
:D  




 
t'es jaloux? t'en demande? combien de doigt :fuck:?
 
au fait au passage -+ dans la deb ya bien lylo pour le multi boot?


---------------
Je suis perdus mais c'est pas grave
n°84557
911GT3
en roue libre
Posté le 05-04-2002 à 01:14:08  profilanswer
 

non, juste des sylex pour le faire sois même :o

n°84559
minusplus
Posté le 05-04-2002 à 01:15:23  profilanswer
 

Mazee a écrit a écrit :

 
 
t'es jaloux? t'en demande? combien de doigt :fuck:?
 
au fait au passage -+ dans la deb ya bien lylo pour le multi boot?  




répète aprés moi : LA DEBIAN contient tout, la DEBIAN est tout !
 
 
 
:D

 

[jfdsdjhfuetppo]--Message édité par minusplus--[/jfdsdjhfuetppo]

n°84593
mazee
De sortie
Posté le 05-04-2002 à 02:07:48  profilanswer
 

répète aprés moi : LA DEBIAN contient tout, la DEBIAN est tout !


---------------
Je suis perdus mais c'est pas grave
n°84626
Piksou
Posté le 05-04-2002 à 08:52:52  profilanswer
 

Rhhaaaaa, c le modo qui détourne mon topic, ou va-t-on ? :sarcastic:
Bon, pour le chaine, ça marche sans les \<\>, donc, je suis content
mais pas moyen de fusionner les 3
 sed: je peux fusionner les 2 derniers avec un ; mais qd je fais pareil avec la premier, ça me retourne plus rien :/
ça, ça marche:
cat test | sed -e '1,1D' |sed -e '2,5D' |sed -e 's/\([^ ]*\)\([ ]*\)\([^ ]*\)\([ ]*\)\([^ ]\)/\5/g'  
ça aussi:
cat test | sed -e '1,1D' |sed -e '2,5D;s/\([^ ]*\)\([ ]*\)\([^ ]*\)\([ ]*\)\([^ ]\)/\5/g'  
mais ça non:
cat test | sed -e '1,1D;2,5D;s/\([^ ]*\)\([ ]*\)\([^ ]*\)\([ ]*\)\([^ ]\)/\5/g'
 
PS: en fait, le cat est mort aussi, mais ça me lourde de modifier ça aussi: je poste depuis l'EPF et g pas ma ligne de commande sous la main :sweat:
 
-+: la deb contient tout, heu, ouais, mais pas la potatoe alors ;)

 

[jfdsdjhfuetppo]--Message édité par Piksou--[/jfdsdjhfuetppo]


---------------
« Le verbe "aimer" est le plus compliqué de la langue. Son passé n'est jamais simple, son présent n'est qu'imparfait et son futur toujours conditionnel. » Jean Cocteau
n°84725
arsunik
ma tuxitude me beastifie
Posté le 05-04-2002 à 14:21:41  profilanswer
 

cat toto | sed ...   <==> sed ... toto
 
sed -n "3s/toto/titi/;3p"

n°84730
minusplus
Posté le 05-04-2002 à 14:27:11  profilanswer
 

moi j'aime pas sed passke j'ai pas trouvé de doc décente sur sed et la manière qu'il a de gérer les regexp ! :/

n°84854
Piksou
Posté le 05-04-2002 à 20:16:03  profilanswer
 

arsunik: ouais, ça, j'avais réussi, mon prblème actuel est que j'ai réussi à fusionner les deux derniers sed mais aps les 3 ensemble
je faisais
sed -e 'bla1' fichier | sed -e 'bla2' | sed -e 'bla3'
now, qd je fais:
sed -e 'bla1' fichier | sed -e 'bla2;bla3'
ça marche
mais qd je rajoute le premier avec un ; aussi, ça merde.
en fait, c aps si grave, ça marche (et j'en suis pas peu fier vu mon niveau :o) mais mais c laid de laisser 2 sed à la suite avec un | (et j'aime aps ne aps comprendre :/)


---------------
« Le verbe "aimer" est le plus compliqué de la langue. Son passé n'est jamais simple, son présent n'est qu'imparfait et son futur toujours conditionnel. » Jean Cocteau
mood
Publicité
Posté le   profilanswer
 


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

  Cherche explication sur les Regular Expressions et sed

 

Sujets relatifs
[Linux- ev. mdk] Je cherche un piti serveur pop/smtpcherche prog pour Gnome qui gere les rpm et les tar.gz...
cherche distribution mandrake 8.1Cherche une doc pour installer les sources Apache/Php/MySQL !!
Cherche cours sur GCC et les bibliothequescherche de laide pour faire un site
Cherche Linux redhat 7 mais ... (trouvé)Je cherche un firewall en mode graphique (KDE)
Je cherche de jolie capture d'écran Linuxcherche utilisateur de Radeon
Plus de sujets relatifs à : Cherche explication sur les Regular Expressions et sed


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