ubuntuusers.de

find: alle Dateien, die mit einem Buchstaben anfangen

Status: Ungelöst | Ubuntu-Version: Ubuntu 11.10 (Oneiric Ocelot)
Antworten |

caiusjuliuscaesar

Anmeldungsdatum:
20. Januar 2009

Beiträge: Zähle...

Hallo,

ich möchte mittels find alle Dateine ausgeben lassen, die mit einem Buchstaben beginnen.

Folgendes Kommando funktioniert allerdings nicht:

1
find /Pfad/Verzeichnis -print -type f -regex "^[A-Za-z].*"

Bei dem regex hatte ich mir gedacht: - ^=Anfang der Dateinamen - [A-Za-z] alle Buchstaben - .* danach beliebig oft andere Zeichen

Das scheint so nicht zu funktionieren: ich bekomme eine Vielzahl von Dateien ausgegeben. Das mit dem Anfang stimmt nicht, denn ich erhalte alle Dateien, die im Namen irgendeinen Buchstaben beinhalten.

Weiß jemand Rat?

Gruß, CJC

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13207

Huhu,

caiusjuliuscaesar schrieb:

ich möchte mittels find alle Dateine ausgeben lassen, die mit einem Buchstaben beginnen.

Folgendes Kommando funktioniert allerdings nicht:

1
find /Pfad/Verzeichnis -print -type f -regex "^[A-Za-z].*"

Bei dem regex hatte ich mir gedacht: - ^=Anfang der Dateinamen - [A-Za-z] alle Buchstaben - .* danach beliebig oft andere Zeichen

Der reguläre Ausdruck wird mit dem kompletten Pfad verglichen. Du brauchst eher -regexp '.*/[A-Za-Z].*' oder Du globbst mit -iname '[a-z]*'.

Das scheint so nicht zu funktionieren: ich bekomme eine Vielzahl von Dateien ausgegeben. Das mit dem Anfang stimmt nicht, denn ich erhalte alle Dateien, die im Namen irgendeinen Buchstaben beinhalten.

Weiß jemand Rat?

Der -print muss nach hinten. Beim Auswerten liefert -print true und hat als Seiteneffekt die Ausgabe. Deshalb hat man i.d.R. -print, -ls, -exec und andere Aktionen am Ende der Liste. Übrigens ist -print die Standardaktion - kannst Du also weglassen.

Ciao

robert

The-Compiler Team-Icon

Avatar von The-Compiler

Anmeldungsdatum:
21. April 2006

Beiträge: 2640

Wohnort: Winterthur, Schweiz

Kanns grad nicht testen, aber das solltest du auch mit Globs ohne Regex können.

find . -name '[a-zA-Z]*'

Flo

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13207

Hi Flo,

The Compiler schrieb:

Kanns grad nicht testen, aber das solltest du auch mit Globs ohne Regex können.

find . -name '[a-zA-Z]*'

Ja, geht. Siehe vorher. ☺

Liebe Grüße

robert

Antworten |