GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Holen Sie sich alle Erweiterungen und ihre jeweilige Dateianzahl in einem Verzeichnis

Lösung 1:

/var/cache$ sudo find ./ -type f | grep -E ".*\.[a-zA-Z0-9]*$" | sed -e 's/.*\(\.[a-zA-Z0-9]*\)$/\1/' | sort | uniq -c | sort -n
      1 .6
      1 .cache
      1 .noconf
      1 .php
      1 .sl
      2 .bin
      2 .el
      2 .tdb
      4 .baseA
      4 .baseB
      4 .dat
      4 .DB
     27 .db
    221 .deb

Hier ist die Erklärung:

find ./ -type f

nur Datei finden, kein Verzeichnis

grep -E ".*\.[a-zA-Z0-9]*$"

Filterdatei mit Erweiterung

sed -e 's/.*\(\.[a-zA-Z0-9]*\)$/\1/'

Pfad und Dateinamen löschen, nur Erweiterung speichern

sort | uniq -c | sort -n

sort, uniq und sort

Lösung 2:

Da Sie Linux (gnu grep) verwenden, ist dies ein guter Zeitpunkt, um Perl REs (PCRE) -P zu verwenden und -o von grep Möglichkeit. Nimm die Antwort von @bindbn als großartigen Kandidaten:

find . -type f | grep -Po '\.([\w\d])*$' | sort | uniq -c | sort -n

Linux
  1. Holen Sie sich die neueste Datei in einem Verzeichnis unter Linux

  2. ZIP-Datei erstellen und Verzeichnisstruktur ignorieren

  3. Linux-Befehl zum Leeren aller Dateien eines Verzeichnisses

  4. Unrar alle Dateien im Verzeichnis ohne Aufforderung

  5. Holen Sie sich die Größe aller Ordner im Verzeichnis

So kopieren Sie Dateien und Verzeichnisse unter Linux

So tarieren Sie bestimmte Dateitypen (Erweiterungen) in einem Verzeichnis

Gute Kombination aus Befehlszeile und grafischem Dateibrowser?

Wortvorkommensanzahl aller Wörter in Textdatei abrufen und Druckausgabe sortiert?

Wie verschiebe ich alle Java-Quelldateien in ihr jeweiliges Paketverzeichnis?

Verwalten Sie Verzeichnis- und Dateiberechtigungen mit chmod Recursive