Liste der Dateien, die vorhanden sind, filtern

8

Wie filtere ich eine Liste von Dateien zu den vorhandenen?

Zum Beispiel

%Vor%

würde drucken

%Vor%     
Paul Draper 14.01.2014, 16:46
quelle

4 Antworten

12

Sie können ls -d die Dateien und sehen, welche eine Ausgabe erhalten. Da Sie diese in einer Zeichenkette haben, leiten Sie einfach die Liste durch und verwenden xargs , um ls sie zu können.

Um Fehler zu verbergen, leiten Sie diese zu /dev/null um. Alles zusammen macht xargs ls -d 2>/dev/null es:

%Vor%

Wie Sie sehen, führt xargs ls -d ls -d für alle angegebenen Argumente aus. 2>/dev/null entfernt die stderr-Nachrichten.

    
fedorqui 14.01.2014, 16:47
quelle
2

Wenn Sie GNU xargs haben, verwenden Sie -d '\n' , um sicherzustellen, dass Dateinamen mit eingebetteten Leerzeichen korrekt behandelt werden.

%Vor%

Mit BSD / macOS xargs ist es etwas komplizierter:

%Vor%     
mklement0 25.10.2016 00:13
quelle
0

Als Erstes habe ich den Code für stats in einer Schleife gelesen:

%Vor%

Beachten Sie, dass diese Lösung langsam ist, da sie im Shell-Code eine Schleife ausführt und ein externes Dienstprogramm (erstellt einen untergeordneten Prozess, stat ) in jeder Iteration.

    
mklement0 25.10.2016 03:57
quelle
0

Ich würde bashs verwenden, wenn ich nach den Dateien suchen soll. Es endet etwas weniger kompakt, aber ich denke, es ist klarer zu lesen, und einfacher, etwas mit jeder gefundenen Datei in den Ergebnissen zu tun.

Es ist kompatibel mit Dateinamen mit Leerzeichen.

%Vor%     
rjmunro 23.02.2018 09:19
quelle

Tags und Links