Mailinglist Archive: opensuse-de (917 mails)

< Previous Next >
Re: Dateien suchen und kopieren (regex)
  • From: Al Bogner <suse-linux@xxxxxxxxxxxxxxxxxxxx>
  • Date: Mon, 10 May 2010 16:16:05 +0200
  • Message-id: <201005101616.06460.suse-linux@xxxxxxxxxxxxxxxxxxxx>
Am Montag 10 Mai 2010 11:17:09 schrieb Christian Brabandt:
On Mon, May 10, 2010 10:59 am, Thomas Moritz wrote:
Am Montag, 10. Mai 2010 08:18:49 schrieb Christian Brabandt:
On So, 09 Mai 2010, Al Bogner wrote:
Es geht darum, dass Dateien in ein neues Verzeichnis kopiert
werden sollen, wenn der Ordner eine bestimmte Zeichenkette
enthält und der Dateiname zwischen Anfang und dem ersten "-"
einen Punkt enthält und die Endung txt ist.

Beispiel:

/dir1/dir2/dir3/abcdef/dir5/1.2-irgendwas.txt
/dir1/dir2//abcd/dir4/03.11nochwas.txt
/dir1/dir2/dir3/abcdef/dir5/1-irgendwasanderes.txt

Demnach sollen also die ersten beiden Dateien gefunden werden,
wenn nach einem "Directory-Inhalt" mit bc gesucht wird, der 3.
darf nicht gefunden werden, da da vor dem "-" kein Punkt ist.

find . -path '*bc*' -iregex '.*/[^./-]*\.[^/-]*-.[^/]*\.txt$'

Das passt aber nicht auf solchen Muell wie:
1.23.-a.a-a.txt
1.23.aaa.aaa-.txt

auf die erste schon. Der 2. matcht nur nicht, weil da in der RE noch ein
Bug drin ist. Es müsste also eigentlich heißen:

-iregex '.*/[^./-]*\.[^/-]*-[^/]*\.txt$'

(Man beachte den fehlenden Punkt, der verhinderte, dass auf einen Binde-
strich das .txt folgen darf).

Ich habe das gerade mit einem Testverzeichnis probiert, sieht ganz gut aus,
hat aber noch einen vernachlässigbaren Fehler, wenn "bc" im Dateinamen
vorkommt aber _nicht_ in einem Verzeichnis, dann wird das auch gefunden. In
der Praxis ist das vernachlässigbar, aber vielleicht kann man das noch
verbessern.

Al
--
Um die Liste abzubestellen, schicken Sie eine Mail an:
opensuse-de+unsubscribe@xxxxxxxxxxxx
Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken
Sie eine Mail an: opensuse-de+help@xxxxxxxxxxxx

< Previous Next >
Follow Ups