Portál AbcLinuxu, 21. července 2025 00:57


Dotaz: nefunkční kvantifikátory v sed

24.2.2013 10:42 Michal
nefunkční kvantifikátory v sed
Přečteno: 151×
Odpovědět | Admin
Zdravím,

zkouším pomocí sed upravit soubor - maillog. mám ale problém s použitím regex, respektive kvantifikátorů. Pokud použiju např. sed "s/ mail postfix\/qmgr\[[0-9][0-9][0-9]\]://g" je to OK

pokud ale použiju sed "s/ mail postfix\/qmgr\[[0-9]{1-4}\]://g" pak to žádný řetězec k nahrazení nenajde. Stejně tak pokud použiju [0-9]+?

Zkouším to v terminálu Mac OS X. Nevím, jestli to má na něco vliv, podle manuálu by nemělo... Dík
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

24.2.2013 10:50 potato
Rozbalit Rozbalit vše Re: nefunkční kvantifikátory v sed
Odpovědět | | Sbalit | Link | Blokovat | Admin
sed normálně pracuje se základními regulárními výrazy (basic regular expressions). Pokud chceš rozšířené (extended), musíš použít -r (GNU) nebo -E (BSD). V OS X je BSD sed, nicméně GNU sed lze doinstalovat.
24.2.2013 10:53 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: nefunkční kvantifikátory v sed
Odpovědět | | Sbalit | Link | Blokovat | Admin
sed -e 's/ mail postfix\/qmgr\[[0-9][0-9][0-9]\{1,4\}\]://g
sed -re 's/ mail postfix\/qmgr\[[0-9]{1,4}\]://g

(to druhé tam možná fungovat nebude, to je IIRC specialita GNU sedu)

24.2.2013 11:05 Michal
Rozbalit Rozbalit vše Re: nefunkční kvantifikátory v sed
...díky obema. Funguje varianta:

sed -E "s/ mail postfix\/qmgr\[[0-9]{1,4}\]://g"

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.