$ ls *.* | nawk -F\. '{print $(NF);}' | sort | uniq
Se você quiser saber quantos de cada tipo:
$ ls *.* | nawk -F\. '{print $(NF);}' | sort | uniq -c
Eu tenho um diretório com muitos arquivos de imagem em diferentes formatos. Eu gostaria de ver uma lista de todas as terminações de arquivo distintas nesse diretório, para que eu possa ver que tipo de formatos de imagem estão presentes. Então, supondo que haveria apenas arquivos png
, gif
e jpg
, minha saída desejada seria:
png
gif
jpg
Eu sei como obter uma lista de todos os finais de arquivo usando ls
e cut
, mas não sei como fazer com que contenham apenas entradas exclusivas. Existe uma maneira de fazer isso usando apenas ferramentas de shell, ou eu tenho que escrever um pequeno script python ou similar?
Existe sempre um jeito.
function alsoHidden {
find . -maxdepth 1 -type f -printf '%f\n';
}
$ alsoHidden | sed -E 's/.*\.(.*)//' | sort -u
$ alsoHidden | tr . / | xargs -I% basename % | sort -u
$ alsoHidden | awk -F. ' !a[$NF] { print $NF; a[$NF]++ }'