Re: Conf Datei einlesen und ausgeben
am 2006-11-25 12:50 schrieb David Haller:
> Am Sam, 25 Nov 2006, Peter Velan schrieb:
>>am 2006-11-25 09:29 schrieb Ulrich Fürst:
> [..]
>>>> Ist beim egrep "[:space:]" identisch mit dem pcre "\s"?
>>>
>>> Liest sich in der man-page so
>
> Ja.
>
>>So richtig explizit steht in meiner man-page nicht, dass [:space:] für
>>whitespace steht, allerdings stellt sich mir die Frage, wozu eine
>>Zeichenklasse [:space:] definieren, wenn sich dahinter nur ein einzelner
>>'Blank' verbergen sollte.
>
> Nein. Das kann auch ein Tab oder Newline sein. Siehe man 7 regex.
>
>>> funktioniert aber (so?) nicht:
>>>
>>> $ egrep -v "^[:space:]*#|^[:space]*$" /etc/exim4/exim4.conf.template
>>
>>Was ich aber nun gar nicht verstehe:
>>
>>$ egrep -v "^[:space:]*#|^[:space:]*$" /etc/samba/smb.conf
>>
>>liefert ungerührt:
>>
>> # NETWORKING
>>^
>>+----- hier steht in smb.conf ein einziger "Blank" (= HEX-20)
>>
>>Das hätte doch die Regex "^[:space:]*#" wegputzen müssen!?
>
> Nein. Das sind POSIX-Zeichenklassen, die gelten innerhalb von [].
>
> ==== man 7 regex ====
> Within a bracket expression, the name of a character class
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^
> enclosed in `[:' and `:]' stands for the list of all char
> acters belonging to that class.
> ====
>
> Also:
>
> egrep -v "^[[:space:]]*#|^[[:space:]]*$" /etc/samba/smb.conf
Klasse, so ist es richtig! Hätte mir halt nicht nur 'man grep', sondern
auch 'man regex' reinziehen sollen.
Danke für die erhellenden Worte.
Gruß,
Peter
Reply to: