Dateien finden mit speziellen Zeichen

Du suchst ein Programm für einen bestimmten Zweck?
Antworten
sentolacco
Beiträge: 60
Registriert: 19.10.2006 21:26:39

Dateien finden mit speziellen Zeichen

Beitrag von sentolacco » 03.12.2009 00:39:36

Hallo,

ich würde gerne in einem Ordner alle Unterordner und Dateien durchsuchen, und alle Unterordner und Dateien finden, die ein Zeichen im Namen haben das nicht a-z, _ und 0-9 enthalten.
Wie mach ich das am Besten?

Gruß
sentolacco

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Re: Dateien finden mit speziellen Zeichen

Beitrag von Duff » 03.12.2009 07:49:48

Eventuell so?

Code: Alles auswählen

find . | grep -v "[a-z0-9_]"
Oh, yeah!

sentolacco
Beiträge: 60
Registriert: 19.10.2006 21:26:39

Re: Dateien finden mit speziellen Zeichen

Beitrag von sentolacco » 04.12.2009 14:35:13

So das hat jetzt nicht ganz geklappt, da in einem pfad (oh wunder) meistens noch . (Punkt) und / (Schrägstrich) enthalten sind.
damit gehts für mich:

Code: Alles auswählen

find . -not -regex '[a-z0-9\.\/_]*'
Danke und Viel Spaß

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Re: Dateien finden mit speziellen Zeichen

Beitrag von Duff » 04.12.2009 15:03:10

Wunderbar!
sentolacco hat geschrieben:So das hat jetzt nicht ganz geklappt, da in einem pfad (oh wunder) meistens noch . (Punkt) und / (Schrägstrich) enthalten sind.
Das hattest du nicht erwähnt ;-)
Oh, yeah!

sentolacco
Beiträge: 60
Registriert: 19.10.2006 21:26:39

Re: Dateien finden mit speziellen Zeichen

Beitrag von sentolacco » 04.12.2009 16:41:02

ja das is mir irgendwie auch erst später aufgefallen :-)

sonya
Beiträge: 84
Registriert: 28.07.2007 07:55:33

Re: Dateien finden mit speziellen Zeichen

Beitrag von sonya » 07.12.2009 16:31:29

sentolacco hat geschrieben:So das hat jetzt nicht ganz geklappt, da in einem pfad (oh wunder) meistens noch . (Punkt) und / (Schrägstrich) enthalten sind.
damit gehts für mich:

Code: Alles auswählen

find . -not -regex '[a-z0-9\.\/_]*'
Danke und Viel Spaß
Hallo sentolacco,

Sonderzeichen/Buchstaben mit Zirkumflex oder Akut, ..., z. B. â (a mit Zirkumflex) oder á (a mit Akut) findest Du mit dieser Variante nicht.
Diese Beiden sind in dem Ausdruck ...'[a-z]... enthalten, ja sie sind bereits in ... '[a-b... enthalten. Zumindest war es bei mir *in der Vergangenheit* innerhalb einer Suche einmal der Fall.
Evtl. hängt es ja auch mit dem verwendeten Zeichensatz in dem gerade verwendet System zusammen.
Diese Zeilen nur als Hinweis.

LG
Sonya

chrisbra
Beiträge: 122
Registriert: 19.10.2005 09:36:09
Wohnort: Sachsen-Anhalt
Kontaktdaten:

Re: Dateien finden mit speziellen Zeichen

Beitrag von chrisbra » 07.12.2009 17:07:44

sonya hat geschrieben:Sonderzeichen/Buchstaben mit Zirkumflex oder Akut, ..., z. B. â (a mit Zirkumflex) oder á (a mit Akut) findest Du mit dieser Variante nicht.
Diese Beiden sind in dem Ausdruck ...'[a-z]... enthalten, ja sie sind bereits in ... '[a-b... enthalten. Zumindest war es bei mir *in der Vergangenheit* innerhalb einer Suche einmal der Fall.
Evtl. hängt es ja auch mit dem verwendeten Zeichensatz in dem gerade verwendet System zusammen.
Locale beachten!

Code: Alles auswählen

chrisbra t41:/tmp/sonderzeichen [1088]% ls
a  a_  a.  à  â  ä  Ä  aa  ß
chrisbra t41:/tmp/sonderzeichen [1089]% find . -type f ! -regex ".*/[a-z]*$"
./Ä
./a.
./a_
chrisbra t41:/tmp/sonderzeichen [1090]% LC_CTYPE=C find . -type f ! -regex ".*/[a-z]*$" -exec sh -c 'for i; do echo $i; done' find-sh '{}' +
./ä
./ß
./à
./â
./Ä
./a.
./a_
chrisbra t41:/tmp/sonderzeichen [1091]%
der exec part ist nur da, damit der subprozess die Dateien auch wieder richtig darstellt. Ansonsten kommt nämlich sowas hier raus:

Code: Alles auswählen

chrisbra t41:/tmp/sonderzeichen [1079]% LC_ALL=C find . -type f ! -regex ".*/[a-z]*$"
./??
./??
./??
./??
./??
./a.
./a_
was nicht sonderlich hilfreich ist, denk ich mal
Meine Whishlist
:wq!

Antworten