# bash: Zeilen von Dateien zählen



## DarthShader (27. April 2007)

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!


----------



## Dennis Wronka (27. April 2007)

Willst Du die Ausgabe fuer alle Dateien zusammen oder jede einzeln?
Alle zusammen:

```
cat *.cpp | wc -l
```
Einzeln:

```
for FILE in *.cpp; do
 echo "$FILE: $(cat $FILE | wc -l)"
done
```


----------



## DarthShader (27. April 2007)

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?


----------



## Matthias Reitinger (27. April 2007)

Dennis Wronka hat gesagt.:


> ```
> for FILE in *.cpp; do
> echo "$FILE: $(cat $FILE | wc -l)"
> done
> ```


wc -l $FILE tut's auch 



DarthShader hat gesagt.:


> Und wie erweitere ich "cat *.cpp | wc -l" dahingehend, dass auch alle unterverzeichnisse nach *.cpp durchsucht werden?


Vorschlag:

```
find . -name '*.cpp' -type f -print0 | xargs -0 cat | wc -l
```

Grüße,
Matthias


----------



## DarthShader (27. April 2007)

Ah, danke  Wenn man die bash Benutzung nicht so oft macht, sucht man sich immer dämlich in den manpages


----------



## Dennis Wronka (28. April 2007)

Matthias Reitinger hat gesagt.:


> wc -l $FILE tut's auch


Danke fuer den Tipp. Hab wc bisher immer in einer Pipe genutzt, und es noch nie so probiert. 



DarthShader hat gesagt.:


> 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.


----------

