Como classificar ls por coluna no Ubuntu via tubulação para classificar?

Como classificar ls por coluna no Ubuntu via tubulação para classificar?

Sou um novato em Linux tentando aprender como funciona a tubulação no terminal Ubuntu. Tentei classificar por tamanho de arquivo:

ls -al | sort -k5

Os arquivos foram listados nesta ordem:

drwx------ 19 min10 domain users      0 2010-10-07 12:38 .
drwx------ 29 min10 domain users      0 2010-02-16 22:30 MSI
drwx------  2 min10 domain users      0 2009-11-25 19:53 www
drwx------  2 min10 domain users      0 2010-02-05 09:14 .cache
drwx------  2 min10 domain users      0 2010-03-02 08:11 My Pictures
drwx------  2 min10 domain users      0 2010-03-02 10:41 regu
drwx------  2 min10 domain users      0 2010-03-31 13:08 elec
drwx------  2 min10 domain users      0 2010-04-10 21:43 temp
drwx------  2 min10 domain users      0 2010-10-06 09:13 bubbla
drwx------  3 min10 domain users      0 2010-01-26 08:26 cfg
drwx------  3 min10 domain users      0 2010-03-30 15:34 data
drwx------  3 min10 domain users      0 2010-03-30 16:03 idv
drwx------  3 min10 domain users      0 2010-04-01 09:10 arduino-0018
drwx------  3 min10 domain users      0 2010-04-14 15:10 processing-1.1
drwx------  3 min10 domain users      0 2010-07-06 16:20 eclipse
drwx------  4 min10 domain users      0 2010-04-15 09:34 pryl
drwx------  4 min10 domain users      0 2010-07-06 16:30 dv2
-rwx------  1 min10 domain users    123 2010-10-07 12:38 starwars.txt
-rwx------  1 min10 domain users  16109 2010-10-06 07:01 .bash_history
-rwx------  1 min10 domain users 454656 2010-03-30 15:29 putty.exe
-rwx------  1 min10 domain users    504 2010-04-10 21:16 little.gif
-rwx------  1 min10 domain users  56682 2010-04-10 21:12 awesome.jpg
-rwx------  1 min10 domain users      7 2010-04-10 21:32 blah.txt

Obviamente, isso é uma falha em termos de classificação por tamanho de arquivo. Tentei com várias outras colunas além de -k5e repetidamente obtive resultados confusos e fora de ordem. Eu também tentei -nk5e ainda não consegui. O que estou fazendo de errado?

Responder1

A saída que você mostra é classificada em ordem alfabética em vez de numérica. Tente adicionar:

-n, --numeric-sort compare de acordo com o valor numérico da string

Editar:Acabei de notar que na sua saída a coluna de tamanho do arquivo parece ser a sexta! você tentou -nk6?

Testado em meu Hardy Heron, estes funcionam:

  • ls -al | sort -nk5
  • ls -al | sort -k5n
  • ls -al | sort -k5 -n
  • ls -al | sort -k5 --numeric-sort

sort --versionrendimentos: 6,10

Responder2

Para classificar por tamanho, tente 'ls -S' ou 'ls -rS'.

informação relacionada