msoliver
(usa Debian)
Enviado em 15/04/2024 - 17:09h
X_water escreveu:
Como eu consigo colocar as pastas em ordem crescente de acordo com a quantidade de arquivo dentro delas no terminal, mostrando a quantidade de arquivos?
EX:
20 pasta1
30 pasta2
50 pasta3
...
Boa tarde, segue sugestão:
ls -lR /diretorio/|awk 'BEGIN{RS="\n\n";FS="\n";}{N=0;D=0;for(n=1;n<=NF;n++) if($n~/^-/) N++;}{printf "%02d:%s\n",N,$1}'|sort -t':' -nrk2
Como funciona:
ls -lR, lista no formato:
diretorio/
....
(conteúdo, incluindo dirs)
diretorio/dir01
....
.....
awk 'BEGIN{RS="\n\n";FS="\n";}:
Define os "registros", separados por uma linha vazia, com um campo por linha.
{N=0;for(n=1;n<=NF;n++) if($n~/^-/) N++;}
Define var N=0 (em cada laço),
Percorre os campos de cada registro, e,
Conta somente arquivo comum, (N++)
{printf "%02d:%s\n",N,$1}'|sort -t':' -nrk2
Imprime e ordena pela quantidade de arquivos.
#----------------------------------------------------------#
É isso, testado e funcionando a contento.
[Debian 12.5]
______________________________________________________________________
Importante:
lynx --dump https://www.vivaolinux.com.br/termos-de-uso/ | sed -nr '/^[ ]+Se/,/udou.$/s/^[ ]+//p'
______________________________________________________________________
Nota de esclarecimento:
O comando: ACIMA , faz parte da minha assinatura.
Att.: Marcelo Oliver
______________________________________________________________________