GNU/Linux >> Znalost Linux >  >> Linux

Jak najdu všechny odlišné přípony souborů v hierarchii složek?

Zkuste toto (nejsem si jistý, jestli je to nejlepší způsob, ale funguje to):

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

Funguje to následovně:

  • Najít všechny soubory z aktuální složky
  • Vytiskne příponu souborů, pokud existují
  • Vytvořte jedinečný seřazený seznam

Není třeba, aby potrubí sort , awk to všechno umí:

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

Rekurzivní verze:

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

Pokud chcete součty (kolikrát bylo rozšíření vidět):

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

Nerekurzivní (jedna složka):

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

Založil jsem to na tomto příspěvku na fóru, tam by měl být kredit.


Linux
  1. Jak mohu rychle sečíst všechna čísla v souboru?

  2. Jak mohu přidat řetězec na začátek každého souboru ve složce v bash?

  3. Jak najít největší adresáře nebo největší soubory?

  1. Jak najdu všechny pevné odkazy na souborovém systému?

  2. Jak mohu najít nejstarší soubor ve stromu adresářů

  3. Jak zajistím, aby hledání vyloučilo složku, ve které hledá?

  1. Jak najít nejstarší soubor ve stromu adresářů v Linuxu

  2. Jak mohu změnit název mnoha souborů ve složce?

  3. Jak zrušit propojení všech symbolických odkazů v adresáři?