Me gustaría ver toda la extensión única de los archivos contenidos en un determinado directorio. ¿Cuál es el comando para hacer eso en bash?
Se podría usar find . -type f
para obtener todos los archivos en el directorio actual, luego quitar la extensión y canalizarla uniq
. ¿Cuál es la forma más fácil de quitar la extensión?
sed: illegal option -- r
-E
lugar de-r
en OS X.Funciona en OS X, excepto para archivos sin extensión. Mi carpeta de descargas:
Es posible que necesite en su
sed -r
lugar?Problema menor: los archivos sin extensiones imprimen su nombre. Los archivos ocultos (como
.DS_Store
) imprimen su nombre sin guiar.
.fuente
sort -u
lugar desort | uniq
. Menos bifurcación y uso de recursos.[]
.Aquí hay otra solución que no se confunde con los nombres de archivo que contienen líneas nuevas incrustadas y las utiliza
sort -uz
para ordenar correctamente las extensiones de archivo que también pueden tener líneas nuevas incrustadas:fuente
Una forma rápida y fácil de recordar de quitar la extensión es asumir que todos los nombres de archivo tienen el formato "name.ext" y luego usar:
esto da una cuenta de cuántas extensiones únicas hay, por ejemplo:
fuente
mira, por eso me gusta awk:
fuente