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

 


Dernière réponse
Sujet : Cherche explication sur les Regular Expressions et sed
Piksou 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 :/)

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
Piksou 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 :/)
minusplus 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 ! :/
arsunik cat toto | sed ...   <==> sed ... toto
 
sed -n "3s/toto/titi/;3p"
Piksou 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]

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

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]

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

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?

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

911GT3 a écrit a écrit :

t'aimes avoir mal non ? [:dark_schneider]  




hooo  oui :love: mount moa :D

911GT3 t'aimes avoir mal non ? [:dark_schneider]
mazee

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

minusplus y'a bien Ben harper ki a essayé de monter un cluster sous linux ! :D
mazee tiens ya des hierogliphe sous linux?
minusplus

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

Piksou 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 ?
arsunik

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

Piksou 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
Piksou 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 ?
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]
Jar Jar

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 !

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

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...

Piksou 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...
Jar Jar 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).
[:totozzz]  
 
cai encore ton pascal tout moche qui pue?
Piksou 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:
Hellfire 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]

Piksou ouais mais bon, ici aussi :/
bon, vais envoyer un PM à ping :D
monokrome essaye d'aller voir sur irc sur un chan #linuxfr ou #linux, y a des  monstres la-dedans  ;)
Piksou :cry:  :cry:  :cry:  :cry:
Piksou personne ? :(
Piksou 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]


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)