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

Re: ls | grep



On Sat, Jan 07, 2006 at 08:49:55PM +0100, Al Bogner wrote:
> > > warum wurde der _ "herausgehoben"?
> 
> Ich meinte, so wie ich es in 
> http://lists.debian.org/debian-user-german/2006/01/msg00567.html verwendet 
> habe. Die Anforderungen haben sich zwar mittlerweile etwas vertieft, aber
> 
> find -maxdepth 1 -type d ! -regex ".*[_cd|_ef]$" -printf "%f\n" funktionierte 
> und das nicht:
> find -maxdepth 1 ! -regex ".*_[cd|ef]$" -printf "%f\n"

Das liegt ganz einfach daran, dass runde und eckige Klammern für
verschiedene Zwecke verwendet werden. Um *ein* Zeichen aus einer Liste
von meherern Zeichen zu matchen, setzt man diese Liste in eckige
Klammern. Mit runden Klammern können Ausdrücke gruppiert werden, um z.B.
Alternativen zu formulieren.

".*_[cd|ef]$"

null oder mehr beliebige Zeichen (.*), gefolgt von '_', gefolgt von
'c', 'd', '|', 'e', oder 'f', am Zeilenende.

".*[_cd|_ef]$"

null oder mehr beliebige Zeichen (.*), gefolgt von '_', 'c', 'd', '|',
'e', oder 'f', am Zeilenende. Der zweite Unterstrich in eckigen Klammern
ist überflüssig, da er ja schon am Anfang der Liste steht.

".*_\(cd\|ef\)$"

null oder mehr beliebige Zeichen, gefolgt von '_', gefolgt von
*entweder* 'cd' *oder* 'ef', am Zeilenende.

> Al

Gruß,

f
-- 
Gravity is a myth, the Earth sucks.



Reply to: