2016-09-15 3 views
-1

Ich hätte gerne ein Skript, das jede einzelne Datei in einem Verzeichnis (einschließlich Unterverzeichnissen) durchläuft und mir die Gesamtanzahl an Zeilen zurückgibt in allen Dateien ohne Leerzeilen und ohne Ordner/Dateien mit Schlüsselwörtern (log).Gesamtzeilen einer Datei in mehreren Unterverzeichnissen innerhalb eines Verzeichnisses (ohne schwarze Zeilen)

Ich habe zur Zeit eine einzige Zeile Code, die mir die Gesamtanzahl der Zeilen zurückgibt (einschließlich Leerzeilen) in Dateien von einem einzigen Verzeichnis ‚Dateien‘

cat /home/user/files/* | wc -l 

Gibt es irgendwie so, dass ich zu implementieren können einen Code aufrufen, die zum Beispiel durchlesen kann:

- /home/user/files/* 
- /home/user/files/files2/* 
- /home/user/files/files2/files3/* 

ein Bündel von Verzeichnissen (unbekannte Zahl) und mir die Gesamtzahl der Zeilen aller Dateien (unter Ausschluss von Leerzeilen) (und ohne Ordner/Dateien, die Ha ve Schlüsselwörter auf ihnen (Protokoll)) gefunden.

Ich verwende derzeit BASH, um Skript aber wenn es eine Lösung in Python gibt, bin ich mehr als glücklich, es zu verwenden.

+0

@ juanpa.arrivillaga ich meine Frage etwas aktualisiert haben, ich würde die Gesamtzahl der Zeilen müssen mit Ausnahme von Leerzeilen. –

Antwort

1

Versuchen Sie, alle Dateien im Verzeichnis rekursiv zu finden (-type f Flag zu finden). Beachten Sie, dass dies auch Binärdateien ausdruckt, genauso wie Ihr aktueller Code.

find /home/user/files/ -type f -exec cat {} \; | wc -l 

Edit: die --files-from Lösung in Use wc on all subdirectories to count the sum of lines gegeben ist effizienter, in der Frage verknüpft, kommentiert

+0

danke für deine Bearbeitung. Ich war gerade dabei, Sie die Unterschiede zwischen Ihrer Lösung und der Lösung zu fragen, die in http://stackoverflow.com/questions/13727917/use-wc-on-all-subdirectories-to-count-the-sum-of-lines gegeben wird –

+0

Entschuldigung für die Annahme Ihrer Antwort, ich habe meine Frage leicht aktualisiert, da ich vergaß, es in früheren hinzuzufügen - ich würde es brauchen, um mir die Gesamtzahl der Zeilen (ohne Leerzeilen) –

+0

Keine Probleme. Sind es Code-Dateien, die Sie zählen? Wenn das der Fall ist, gibt es eine ganze Reihe von Code- (Lokal-) Analysewerkzeugen für die Verwendung auf Servern mit kontinuierlicher Integration. – jedifans

Verwandte Themen