[linux] Re: wtf... regular expressions in awk...
Kees Theunissen
theuniss op rijnh.nl
Ma Sep 26 18:28:35 CEST 2005
On Mon, 26 Sep 2005, Hans Paijmans wrote:
>Volgens mij gebruik ik al minstens tien jaar de regexp
>"if (letter~/[A-Z]/)..." in awk. Werkt opeens niet meer.
>de POSIX kreet "if (letter~/[:upper:]/)..." doet het ook
>niet. Alleen "if (letter~/[ABCDE(enzovoorts)]/) doet het
>nog. Is er vannacht iets gebeurd?
Heb je vannacht iets veranderd in je language settings?
Wat is de waarde van je LC_COLLATE enviroment variable?
Als je de sorteer volgorde hebt staan op iets als AaBbCcDd....
dan zal [A-Z] iets anders doen dan alleen hoofdletters selecteren.
Met LC_COLLATE=C zou het moeten werken zoals je gewend was.
Natuurlijk is het gebruik van [:upper:] beter; dat moet werken
ongeacht de waarde van LC_COLLATE.
Let dan wel even op de syntacs.
De gawk(1) manpage zegt:
A character class is only valid in a regular expression
inside the brackets of a character list. Character
classes consist of [:, a keyword denoting the class, and
:]. The character classes defined by the POSIX standard
are:
Let op de formulering "... only valid ... inside the brackets of
a character list."
Met andere woorden: probeer het eens met [[:upper:]].
Groeten,
Kees.
--
Kees Theunissen
F.O.M.-Instituut voor Plasmafysica "Rijnhuizen", Nieuwegein
E-mail: theuniss op rijnh.nl, Tel: 030-6096724, Fax: 030-6031204
More information about the Linux
mailing list