Je voudrais voir toute l'extension unique des fichiers contenus dans un certain répertoire. Quelle est la commande pour faire ça en bash?
On pourrait utiliser find . -type f
pour obtenir tous les fichiers dans le répertoire actuel, puis supprimer l'extension et la diriger vers uniq
. Quelle est la façon la plus simple de supprimer l'extension?
sed: illegal option -- r
-E
au lieu de-r
sur OS X.Fonctionne sur OS X, sauf pour les fichiers sans extension. Mon dossier de téléchargements:
Vous pourriez avoir besoin à la
sed -r
place?Problème mineur: les fichiers sans extension affichent leur nom. Les fichiers cachés (tels que
.DS_Store
) impriment leur nom sans être précédés.
.la source
sort -u
plutôtsort | uniq
. Moins de fourches et d'utilisation des ressources.[]
.Voici encore une autre solution qui ne se confond pas avec les noms de fichiers contenant des sauts de ligne incorporés et les utilise
sort -uz
pour trier correctement les extensions de fichiers qui peuvent également avoir des sauts de ligne intégrés:la source
Un moyen rapide et facile à retenir pour supprimer l'extension est de supposer que tous les noms de fichiers ont le format "nom.ext" puis utilisez:
cela donne le nombre d'extensions uniques, par exemple:
la source
voyez, c'est pourquoi j'aime awk:
la source