[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: