Re: regex fuer zwei Begriffe mit UND Verknuepfung

From: Oliver Fromme <olli(at)lurza.secnetix.de>
Date: Sun, 12 Feb 2006 14:29:19 +0100 (CET)

Marc Santhoff <M.Santhoff(at)t-online.de> wrote:
> Oliver Fromme wrote:
> > Da »echo« ein Shell-builtin ist, unterliegt er nicht dem
> > execve()-Limit, und xargs(1) sorgt dann dafür, daß die Ar-
> > gumente in verdauliche Happen aufgeteilt werden. Man kann
> > natürlich auch find(1) hernehmen (ebenfalls mit xargs),
> > wobei man dann »-maxdepth 1« angeben muß, falls man nicht
> > rekursiv suchen möchte. Im allgemeinen ist in dem Fall
> > aber echo einfacher und schneller als find.
>
> Der eigentliche Trick bei der Sache, auf den ich nicht so schnell
> gekommen wäre, ist xargs zu benutzen.

Wenn man einmal weiß, wofür xargs gut ist, vergiß man das
nicht wieder. Ist etwa so wichtig wie die rechte Maustaste
für GUIs. ;-)

> > Womit wir schon beim zweiten Punkt wären: ob man rekursiv
> > in einem ganzen Verzeichnisbaum suchen möchte oder nicht.
> > Bei rekursiver Suche muß man im allgemeinen natürlich schon
> > find(1) hernehmen, z.B.
> >
> > find . -type f -name '*.txt' | xargs grep ...
> >
> > oder:
> >
> > find . -type f | grep '\.txt$' | xargs grep ...
>
> Auf jeden Fall rekursiv, '\.txt$' bedeutet 'alle Dateinamen mit der
> Zeichenkette '.txt' am Ende, wenn ich richtig verstehen.

Ja, bei der ersten Alternative werden die Dateinamen mit
der Option "-name" von find(1) herausgefiltert. Die ver-
steht die üblichen Shell-Wildcards ("*", "?", "[]"). Damit
nicht bereits die Shell versucht, diese Wildcards zu inter-
pretieren, muß man den Begriff in Anführungszeichen schrei-
ben.

Bei der zweiten Alternative wird stattdessen grep(1) zum
Ausfiltern der Dateinamen verwendet. Hat den Vorteil, daß
man richtige reguläre Ausdrücke verwenden kann. Insbeson-
dere, wenn man mehrere Suffixe braucht, wird das mit find
allein nervig (man braucht -name und -or und alles in Klam-
mern). Mit egrep ist das einfach: '\.(txt|text|doc)$'.

> > Hm. Ich finde es eigentlich schon recht intuitiv.
>
> Nun ja, im Vergleich mit anderen Kommandos vielleicht. Die Schwierigkeit
> für mich ist eigentlich, daß ich normalerweise ohne viel Shellbetrieb
> arbeite (außer bei Aktionen wie ifconfig, mount, ...), und wenn ich mal
> was besonderes brauche, hab's ich es wieder vergessen.

Bei mir ist es genau umgekehrt. Ich mache praktisch alles
an der Shell, weil man damit am effizientesten arbeiten
kann. xterm ist mit Abstand meine wichtigste X-Anwendung.

Gruß
   Olli

-- 
Oliver Fromme,  secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing
Dienstleistungen mit Schwerpunkt FreeBSD: http://www.secnetix.de/bsd
Any opinions expressed in this message may be personal to the author
and may not necessarily reflect the opinions of secnetix in any way.
"FreeBSD is Yoda, Linux is Luke Skywalker"
        -- Daniel C. Sobral
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Sun 12 Feb 2006 - 14:30:31 CET

search this site