Aller au contenu

[RESOLU] regexp


Messages recommandés

Bonjour

j'essai de me mettre aux regexprs, mais j'ai un peu de mal

sur le fichier suivant:

1213954319	  salut   84	  test toto pouet
2008-01-26	  14h30   toto	21	  testdate 2008-01-26 14h30
20080130		14-30-15		test	42	  testdate 20080130 14-30-15
2008 : 06 : 21  1425	totototo		25	  testdate 208 : 06 : 21 1425
2008/03/30	  15:30   pouet   420	 testdate 2008/03/30 15:30
1213953789	  pouet   33	  texte 5
1213953827	  truc	42	  texte2
1213953837	  sodomie 84	  texte2
1213954244	  coit bucal	  21	  texte2
1213954319	  lapidation  42	  test toto pouet
2008-01-26	  14h30   tamaman 18	  testdate 2008-01-26 14h30
2008 : 06 : 21  1425	champignons	 15	  testdate 208 : 06 : 21 1425
2008/03/30	  15:30   fallout 0	   testdate 2008/03/30 15:30
2008-01-26	  14h30   berger  42	  testdate 2008-01-26 14h30
20080130		14-30-15		pankake volant  84	  testdate 20080130 14-30-15
2008 : 06 : 21  1425	encrier 21	  testdate 208 : 06 : 21 1425
2008/03/30	  15:30   toto	33	  testdate 2008/03/30 15:30
1213953789	  faciale 25	  texte 5
1213953827	  pouet   21	  texte 8
1213953837	  pouet   42	  texte2
1213954288	  pouet   84	  texte42

bon ceux qui l'ont pas devine, c'est des tab qui trainent au milieu

j'ai entre quatre et cinq colonnes par lignes, suivant si l'evenement donne l'est avec un timestamp, ou une date qui doit pouvoir etre formatte un peu n'importe comment, sur deux colonnes

bref... pour l'instant, j'essai de grep suivant le contenu de l'avant derniere colonne

j'ai tente ma chance avec les lignes de commande suivantes:

grep "[^\t]42[^\t][a-zA-Z0-9:_/\-\ ]*$" fichier
grep "[^\t]42[^\t].[a-zA-Z0-9:_/\-\ ]*$" fichier

et quelques derives

mais j'ai jamais ce que je cherche a obtenire...

pourquoi selon vous ? a ce que j'ai compris des regexp, ma premiere commande est sence marche...

mais ce n'est pas le cas, donc si vous comprenez ou je me suis trompe, ca pourrait m'arranger :keskidit:

merci pour votre aide !

edit:

euh, ben en fait, je viens de trouver (enfin, pas exactement)

si a la fin de mon [a-zA-Z....] je met '\ ', j'ai mon probleme

si j'enleve le backspace, il me fait un 'invalid range end', mais si j'enleve le backspace et que je met l'espace ailleurs, ca marche presque

la solution temporaire est donc la suivante:

grep "[^\t]42[^\t].[a-zA-Z0-9:_ /\-]*$" fichier

par contre, si le champ contient 420, il est grep (alors que je demande \t42\t pour etre sur d'avoir uniquement des 42 dans ma selection)...

Lien vers le commentaire
Partager sur d’autres sites

manifique!

j'etais pas au courrant qu'il y avait plusieurs syntaxes differentes en fonction de grep ou de perl (en esperant qu'il n'y en ai pas beaucoup d'autres...)

ces [[:space:]] ou [[:print:]], ca ne s'utilise que sur le grep alors ?

mais donc (pour etre sur), \s \S \w \W ne sont pas gere par grep ?! (j'ai pas foutu [a-zA-Z0-9...] sans raisons..., mais je pensais m'etre trompe tout seul comme un grand...)

en tout cas, merci !

Lien vers le commentaire
Partager sur d’autres sites

j'etais pas au courrant qu'il y avait plusieurs syntaxes differentes en fonction de grep ou de perl (en esperant qu'il n'y en ai pas beaucoup d'autres...)
Il y a deux familles principales, les PCRE et les regexp POSIX. Les PCRE étant bien plus pratiques à utiliser, c'est implémenté dans beaucoup de langages au point que je l'utilisais aussi pour grep.
ces [[:space:]] ou [[:print:]], ca ne s'utilise que sur le grep alors ?
Non c'est POSIX. cf la page de man de grep.
mais donc (pour etre sur), \s \S \w \W ne sont pas gere par grep ?!
 \w si.
en tout cas, merci !
Pas de soucis.
Lien vers le commentaire
Partager sur d’autres sites

j'etais pas au courrant qu'il y avait plusieurs syntaxes differentes en fonction de grep ou de perl (en esperant qu'il n'y en ai pas beaucoup d'autres...)
Il y a deux familles principales, les PCRE et les regexp POSIX. Les PCRE étant bien plus pratiques à utiliser, c'est implémenté dans beaucoup de langages au point que je l'utilisais aussi pour grep.

grep -P ( ou grep --perl-regexp)

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...