bash: Zeilen von Dateien zählen

DarthShader

Erfahrenes Mitglied
Hallo zusammen,

ich möchte gerne eine bash Zeile haben (ich bin sicher, dass es in einer Zeile geht...), mit der ich die Anzahl der Zeilen von Dateien ermitteln kann. Dabei sind die Dateien z.B. so anzugeben: "/test/*.cpp", außerdem sollen ebenfalls alle Unterverzeichnisse nach *.cpp durchsucht werden.

Ich habe überlegt, ob nicht eine Kombination von "ls" und "wc -l" zum Ziel führt, weiß aber nicht genau, wie ich sie zusammen anwenden muss.


Vielen Dank für Eure Hilfe!
 
Willst Du die Ausgabe fuer alle Dateien zusammen oder jede einzeln?
Alle zusammen:
Bash:
cat *.cpp | wc -l
Einzeln:
Bash:
for FILE in *.cpp; do
 echo "$FILE: $(cat $FILE | wc -l)"
done
 
Ich wollte sie einzeln, aber per Datei ist natürlich eine gute Dreingabe, danke :)

Und wie erweitere ich "cat *.cpp | wc -l" dahingehend, dass auch alle unterverzeichnisse nach *.cpp durchsucht werden?
 
wc -l $FILE tut's auch ;)
Danke fuer den Tipp. Hab wc bisher immer in einer Pipe genutzt, und es noch nie so probiert. :)

Ah, danke :) Wenn man die bash Benutzung nicht so oft macht, sucht man sich immer dämlich in den manpages :)
Ja, die Bash bietet schon einen Haufen Funktionen. Und die ganzen kleinen Tools koennen ja auch wunderbar ueber Pipes verknuepft werden sodass man oft in einem Schritt zum Ergebnis kommen kann. Dass das nicht immer einfach ist sollte dabei aber klar sein.
Ich selbst hab erst mit meiner Arbeit an meinem eigene Linux so richtig mit dem Shell-Scripting begonnen und dadurch so einiges gelernt, auch wenn die Man-Page der Bash meiner Meinung nach nicht gerade die wirklich leserlichste ist. ;)
Aber jetzt hab ich ja auch ein Buch zu dem Thema was mir auf meinem weiteren Weg in der Shell unter die Arme greifen duerfte.
 
Zurück