xargs mais manipulação de string shell vs sed [duplicate]

1

Estou tentando resumir as extensões de arquivo em um diretório recursivamente.

find .| xargs -d "\n" -I@ echo "${@##.*}" | sort |uniq -c

Mas isso está me dando uma série de linhas em branco. Não é o que eu queria.

Estou ciente de:

find . -type f | sed 's/.*\.//' | sort | uniq -c de uma pergunta semelhante, mas estou curioso sobre por que minha formulação não funciona.

    
por Tim 13.10.2018 / 11:25

1 resposta

3

Você pode obter find para executar file para cada arquivo encontrado.

find . -exec file -b {} \; |cut -f1|sort|uniq -c

editar

Como o comentário de @ Ed-Nevile abaixo de remover cut fornece mais detalhes para arquivos ASCII.

find . -exec file -b {} \; |sort|uniq -c
    
por 13.10.2018 / 11:49

Tags