Archiv verlassen und diese Seite im Standarddesign anzeigen : "find" und "grep" aber wie
Flatbury12
21.04.06, 01:10
Hallo,
ich sitze schon den ganzen Abend an einer bestimmten "grep-Commandozeile"
Ich würde gerne die Anzahl der Dateien eines Verzeichnisses anzeigen lassen um sie dann später in eine Datei zu speichern.
find /home/bla | grep -cE *\.[[:alnum:]]{3}
soweit gehts....aber jetzt würde ich noch zusätzlich manche Dateiendungen (zb. *.gz und *.tar) ausschliessen aus der Zählung.
kann mir evtl jemand helfen?
Vielen Dank
Ich würde gerne die Anzahl der Dateien eines Verzeichnisses anzeigen lassen um sie dann später in eine Datei zu speichern.Der Aufruf
find /home/bla | grep -c "/" reicht um dies zu zu bewerkstelligen (...ist wie dein Beispiel - das ja scheinbar schon passabel funktioniert - aber auch rekursiv und beinhaltet ebenfalls auch Verzeichnisse und nicht nur Dateien im eigentlichem Sinne - das letztere kann man mit "find"'s "-type f" Option umgehen, das erstere mit einer anderen Option). Um bestimmte Dateien auszuschliessen würde ich "find" statt "grep" nutzen (es geht aber auch mit "grep"). "find" bietet Operatoren wie "-and", "-or" und jeweils noch eine Negation, welche mit "-not" definiert wird. Um via "find" alle "*.gz" Dateien rauszufiltern, könnte dein Aufruf z.B. auf folgendem "find" besieren:
find /home/bla -name "*" -and -not -name "*.gz"
EDIT: Noch nen Beispiel (Anzahl aller normale Dateien unterhalb von /home/bla - "*.gz" und "*.tar" werden nicht mitgezählt):
find /home/bla -name "*" -and -not -name "*.gz" -and -not -name "*.tar" -and -type f | grep -c "/"
Nur die Dateien eines Verzeichnisses?
ls Verzeichnis |grep -v "tar.gz" |grep -v ".gz" > Dateiliste.txt :)
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.