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

Wie finde ich alle unterschiedlichen Dateierweiterungen in einer Ordnerhierarchie?

Versuchen Sie Folgendes (nicht sicher, ob es der beste Weg ist, aber es funktioniert):

find . -type f | perl -ne 'print $1 if m/\.([^.\/]+)$/' | sort -u

Es funktioniert wie folgt:

  • Alle Dateien im aktuellen Ordner finden
  • Druckt Erweiterungen von Dateien, falls vorhanden
  • Erstelle eine einzigartige sortierte Liste

Keine Notwendigkeit für die Leitung zu sort , awk kann alles:

find . -type f | awk -F. '!a[$NF]++{print $NF}'

Rekursive Version:

find . -type f | sed -e 's/.*\.//' | sed -e 's/.*\///' | sort -u

Wenn Sie Summen wollen (wie viele Male die Erweiterung gesehen wurde):

find . -type f | sed -e 's/.*\.//' | sed -e 's/.*\///' | sort | uniq -c | sort -rn

Nicht rekursiv (einzelner Ordner):

for f in *.*; do printf "%s\n" "${f##*.}"; done | sort -u

Ich habe dies auf diesem Forumsbeitrag basiert, die Anerkennung sollte dorthin gehen.


Linux
  1. Wie finde ich den Typ einer Img-Datei und mounte sie?

  2. Wie finde ich die Version von Fedora, die ich verwende?

  3. Wie finde ich den Besitzer einer Datei oder eines Verzeichnisses in Python?

  4. Wie kann ich in jedem Ordner eine Datei erstellen?

  5. Wie finde ich die größten Verzeichnisse oder größten Dateien?

Wie finde ich den my.cnf-Speicherort von MySQL?

Wie kann ich schnell alle Zahlen in einer Datei summieren?

Wie kann ich am Anfang jeder Datei in einem Ordner in Bash eine Zeichenfolge hinzufügen?

Wie kann ich alle Dateien bearbeiten, die von find in vi in ​​Linux zurückgegeben werden?

Wie finde ich den Standard-Dateimanager?

So kombinieren Sie den Befehl „tar“ mit „find“