Regex Sed find

18/10/2007 - 10:08 von Karl Teuschler | Report spam
Hallo,

Ich möchte nach allen Dateien in einem Verzeichnissbaum suchen, und
die Dateipfade dann zerlegen.

zB. ein Pafd sieht so aus:
/pfad irgentwo/hin/34 25-_ dateiname- _24.mp3

Als Ergebnis soll dann nur dateiname einmalig und sortiert übrig-
bleiben.

Es soll nur dann in dateiliste.txt geschrieben werden, wenn auch etwas
dem gefundenen Muster entspricht.

Ich habe es so gemacht.
Nur leider klappt es nicht, wenn viele Dateien gefunden werden "[: too
many arguments", also
das prüfen auf nicht leer macht Probleme.


[ ! -z `find . -type f -printf "%f" | \
grep -v "ausname" | \
cut -d. -f1 | \
sed -n '/[a-zA-Z]\{3,\}/p' | \
sed 's/[-0-9_]\+$//g' | \
sed 's/^[-0-9_\ ]\+//g' | \
sort | \
uniq -d` ] && \
find . -type f -printf "%f" | \
grep -v "ausname" | \
cut -d. -f1 | \
sed -n '/[a-zA-Z]\{3,\}/p' | \
sed 's/[-0-9_]\+$//g' | \
sed 's/^[-0-9_\ ]\+//g' | \
sort | \
uniq -d > dateiliste.txt


Danke im Voraus
Karl
 

Lesen sie die antworten

#1 Achim Peters
18/10/2007 - 10:33 | Warnen spam
Karl Teuschler schrieb:
Ich möchte nach allen Dateien in einem Verzeichnissbaum suchen, und
die Dateipfade dann zerlegen.

zB. ein Pafd sieht so aus:
/pfad irgentwo/hin/34 25-_ dateiname- _24.mp3

Als Ergebnis soll dann nur dateiname einmalig und sortiert übrig-
bleiben.

Es soll nur dann in dateiliste.txt geschrieben werden, wenn auch etwas
dem gefundenen Muster entspricht.



Sowas?
find . -name "$Muster" -exec basename "{}" \; | sort | uniq -d >
dateiliste.txt

Bye
Achim

Ähnliche fragen