Portál AbcLinuxu, 11. května 2025 10:43

Dotaz: bash - regularni vyrazy

3.3.2008 16:04 Jirka
bash - regularni vyrazy
Přečteno: 1328×
Odpovědět | Admin
Ahoj,
na teto strance je popsano jak v bashi pracovat s regularnimi vyrazy. Zkousim jeden z prikladu:
#!/bin/bash

variable="This is a fine mess."

echo "$variable"

if [[ "$variable" =~ "T*fin*es*" ]]
then
  echo "match found"
fi
Ale me to nefunguje, vypise se pouze obsah promene. Ani ostatni priklady s operatorem =~ mi nefunguji. A pritom mam bash verze 3.2, co delam spatne?
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

3.3.2008 16:12 Andrej Herceg | skóre: 43
Rozbalit Rozbalit vše Re: bash - regularni vyrazy
Odpovědět | | Sbalit | Link | Blokovat | Admin
Mne to v 3.0 funguje. Nefunguje ani "T.*fin.*es.*"?
3.3.2008 16:21 Jirka
Rozbalit Rozbalit vše Re: bash - regularni vyrazy
Tak to jsem z toho jelen:
jirka@wd250:~/apl/bash> cat t.sh
#!/bin/bash

variable="This is a fine mess."

echo "$variable"

if [[ "$variable" =~ "T*fin*es*" ]]
then
  echo "match found"
fi
jirka@wd250:~/apl/bash> ./t.sh
This is a fine mess.
jirka@wd250:~/apl/bash>
Ani .* nefunguje!
3.3.2008 16:15 Karel Borkovec | skóre: 28 | blog: HP_NX9010 | Tábor
Rozbalit Rozbalit vše Re: bash - regularni vyrazy
Odpovědět | | Sbalit | Link | Blokovat | Admin
her-ur@localhost ~ $ bash --version
GNU bash, version 3.2.17(1)-release (i686-pc-linux-gnu)
Copyright (C) 2005 Free Software Foundation, Inc.
Také funguje v pohodě.
3.3.2008 16:22 Jirka
Rozbalit Rozbalit vše Re: bash - regularni vyrazy
Me to nefunguje na:
jirka@wd250:~/apl/bash> bash --version
GNU bash, version 3.2.25(1)-release (i586-suse-linux-gnu)
Copyright (C) 2005 Free Software Foundation, Inc.
Distro je openSUSE 10.3
3.3.2008 16:26 Jirka
Rozbalit Rozbalit vše Re: bash - regularni vyrazy
Odpovědět | | Sbalit | Link | Blokovat | Admin
No to je gol, na openSUSE 10.1 je to OK:
jirka@wd250:~/apl/bash> ./t.sh
This is a fine mess.
match found
jirka@wd250:~/apl/bash> bash --version
GNU bash, version 3.1.17(1)-release (i586-suse-linux)
Copyright (C) 2005 Free Software Foundation, Inc.
Ze by nejaky BUG?!
3.3.2008 16:58 DNA
Rozbalit Rozbalit vše Re: bash - regularni vyrazy
Odpovědět | | Sbalit | Link | Blokovat | Admin
na Debianu unstable to funguje:

GNU bash, version 3.1.17(1)-release (i486-pc-linux-gnu) Copyright (C) 2005 Free Software Foundation, Inc.
David Watzke avatar 3.3.2008 17:19 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: bash - regularni vyrazy
Odpovědět | | Sbalit | Link | Blokovat | Admin
Starej známej bug... s 3.1 to jde, od 3.2 to nesmíš dát do uvozovek.
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
3.3.2008 17:35 Jirka
Rozbalit Rozbalit vše Re: bash - regularni vyrazy
Ano, kdyz tam nejsou uvozovky, tak je to OK. Ale chtel bych, aby skript behal na vicero ruznych distrech (a verzich), nebude to vadit, ze ty uvozovky budou chybet?
3.3.2008 17:37 Andrej Herceg | skóre: 43
Rozbalit Rozbalit vše Re: bash - regularni vyrazy
Bez úvodzoviek by to malo fungovať bez problémov (aspoň to fungovalo vo všetkých verziách bash, ktoré som skúšal).

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.