Gostaria de ver toda a extensão exclusiva de arquivos contidos em um determinado diretório. Qual é o comando para fazer isso no bash?
Pode-se usar find . -type f
para obter todos os arquivos no diretório atual, remover a extensão e canalizá-la uniq
. Qual é a maneira mais fácil de remover a extensão?
sed: illegal option -- r
-E
vez de-r
no OS X.Funciona no OS X, exceto para arquivos sem extensão. Minha pasta de downloads:
Você pode precisar
sed -r
?Problema secundário: arquivos sem extensões imprimem seus nomes. Arquivos ocultos (como
.DS_Store
) imprimem seus nomes sem avanço.
.fonte
sort -u
vez desort | uniq
. Menos bifurcação e uso de recursos.[]
.Aqui está outra solução que não se confunde com nomes de arquivos que contêm novas linhas incorporadas e usa
sort -uz
para classificar corretamente as extensões de arquivo que também podem ter novas linhas incorporadas:fonte
Uma maneira rápida e fácil de lembrar de remover a extensão é assumir que todos os nomes de arquivos têm o formato "name.ext" e use:
isso fornece uma contagem de quantas extensões únicas existem, por exemplo:
fonte
veja, é por isso que eu gosto do awk:
fonte