Ich bin ein Linux-Neuling und versuche zu lernen, wie Piping im Ubuntu-Terminal funktioniert. Ich habe versucht, nach Dateigröße zu sortieren:
ls -al | sort -k5
Die Dateien wurden in dieser Reihenfolge aufgelistet:
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
Dies ist offensichtlich ein Fehler beim Sortieren nach Dateigröße. Ich habe es zusätzlich zu mit einer Reihe anderer Spalten versucht -k5
und bekomme immer wieder wirre, nicht geordnete Ergebnisse. Ich habe es auch versucht -nk5
und es funktioniert immer noch nicht. Was mache ich falsch?
Antwort1
Die angezeigte Ausgabe ist alphabetisch statt numerisch sortiert. Versuchen Sie Folgendes hinzuzufügen:
-n
,--numeric-sort
Vergleich nach Zeichenfolgenumerischem Wert
Bearbeiten:Mir ist gerade aufgefallen, dass in Ihrer Ausgabe die Spalte mit der Dateigröße die sechste zu sein scheint! Haben Sie es versucht -nk6
?
An meinem Hardy Heron getestet, funktioniert Folgendes:
ls -al | sort -nk5
ls -al | sort -k5n
ls -al | sort -k5 -n
ls -al | sort -k5 --numeric-sort
sort --version
ergibt: 6,10
Antwort2
Um nach Größe zu sortieren, versuchen Sie „ls -S“ oder „ls -rS“.