find Ordner ohne Datei *.pdf

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
slu
Beiträge: 1584
Registriert: 23.02.2005 23:58:47

find Ordner ohne Datei *.pdf

Beitrag von slu » 10.11.2017 14:54:46

Hallo,

ich scheitere gerade an einem einfach find und zwar möchte ich alle Ordner ohne eine Datei *.pdf ausgeben lassen.

Code: Alles auswählen

slu@debian:/tmp/foo$ find
.
./1
./1/file 1.pdf
./2
./2/file2.txt


slu@debian:/tmp/foo$ find . -not -iname "*.pdf" -type d
.
./1
./2
Das "-not -iname" scheint die PDFs nur zu unterdrücken, wie bekomme ich es hin das nur der Ordner "2" ausgegeben wird?
Zuletzt geändert von slu am 10.11.2017 15:17:42, insgesamt 1-mal geändert.
Gruß
slu

Das Server Reinheitsgebot:
Debian Stretch, sonst nichts.

Stolzer Gewinner der Jessie Release Wette:
https://wiki.debianforum.de/Jessie_Release_Wette#SIEGER

TomL
Beiträge: 3663
Registriert: 24.07.2014 10:56:59

Re: find Ordner ohne Datei *.pdf

Beitrag von TomL » 10.11.2017 15:01:49

slu hat geschrieben: ↑ zum Beitrag ↑
10.11.2017 14:54:46
Das "-not -iname" scheint die PDFs nur zu unterdrücken,
Nee, meiner Meinung nach werden wegen "type d" nur Verzeichnisnamen unterdrückt, die dem Muster "*.pdf" entsprechen. Ich glaube, dass die PDF-Dateien gar nicht gelesen werden.
slu hat geschrieben: ↑ zum Beitrag ↑
10.11.2017 14:54:46
wie bekomme ich es hin das nur der Order "2" ausgegeben wird?
Ich glaube, das geht nicht.... zumindest nicht in einem Befehl. ....bin aber mal gespannt, ob dafür jemand vielleicht doch ne Lösung hat.
vg, Thomas

Benutzeravatar
TRex
Moderator
Beiträge: 5991
Registriert: 23.11.2006 12:23:54
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: KA

Re: find Ordner ohne Datei *.pdf

Beitrag von TRex » 10.11.2017 15:40:38

Die simpelste Lösung scheint mir angemessen:

Code: Alles auswählen

find ... -print0 | egrep -v '\.pdf$' | xargs -0 
-print0 und -0 ergänzen sich, sodass du auch Leerzeichen in den Pfaden haben kannst.
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nichtDon't break debian!

Benutzeravatar
rodney
Beiträge: 70
Registriert: 09.12.2016 04:15:59
Lizenz eigener Beiträge: MIT Lizenz

Re: find Ordner ohne Datei *.pdf

Beitrag von rodney » 10.11.2017 15:44:16

Eine kurze Suche hat folgendes (etwas abgewandelt) ergeben:

Code: Alles auswählen

find . -type d '!' -exec sh -c 'ls -1 "{}" | grep -i -q "\.pdf$"' ';' -print
Quelle: https://askubuntu.com/questions/196960/ ... ain-a-file
I don't like poofy coffee... give me Columbian Supremo. --Izchak

slu
Beiträge: 1584
Registriert: 23.02.2005 23:58:47

Re: find Ordner ohne Datei *.pdf

Beitrag von slu » 10.11.2017 18:42:01

Hat funktioniert, sehr schön.

Vielen Dank für die Antworten.
Gruß
slu

Das Server Reinheitsgebot:
Debian Stretch, sonst nichts.

Stolzer Gewinner der Jessie Release Wette:
https://wiki.debianforum.de/Jessie_Release_Wette#SIEGER

Antworten