Välkommen till linuxportalen.se!

Linuxportalen.se är Sveriges största och aktivaste webbplats för användare av öppen- och fri programvara.

Du besöker Linuxportalen.se som gäst vilket begränsar din möjlighet att använda webbplatsens alla funktioner. Genom att registera dig som medlem får du inte bara möjlighet att söka bland webbplatsens innehåll, skapa nya och delta i befintliga diskussioner, skapa din egen blogg, kommunicera med andra medlemmar genom privata meddelanden och delta i omröstningar. Du får också tillgång till Veckans Kadavro - en seriestrip unikt skapad för Linuxportalen.se!

Registeringen sker snabbt och är helt kostnadsfri - tveka inte, bli medlem idag!

Sortering

Hur sorterar man en ls där man får motsvarande träff?

bash-2.05$ ls -a | sort -n

DIR1
DIR10
DIR100
DIR101
DIR102
DIR103
DIR104
DIR105
DIR106
DIR107
DIR108
DIR109
DIR11
DIR110
DIR111
DIR112
DIR113
DIR114
DIR115
DIR116
DIR117
DIR118
DIR119
DIR12
DIR120
DIR121
DIR122
DIR123
DIR124
DIR125
DIR13
DIR14
DIR15
DIR16
DIR17
DIR18
DIR19
DIR2
DIR20
DIR21
DIR22
DIR23
DIR24
DIR25

Vill givetvis ha sorterat från 1-125 i rakt nedstigande led. Antar att svaret är lika enkelt som frågan Smile

Alternativ för kommentarvisning

Välj ditt önskade sätt att visa kommentarerna och klicka på "Spara" för att verkställa dina ändringar.

rejass bild

Svaret beror lite på vilka krav du har. Är det till exempel alltid "DIR" i början? Då kan du göra så här (i alla fall om du har sort från GNU):

ls -a | sort -tR -n -k 2

/Marcus

nisses bild

Njae, jag var nog lite fel ute. Upptäckte att det går att sortera om man t.ex. gör

ls -a | grep DIR | sort -k 1.4

men det löste inte riktigt mitt problem. Biblioteken heter nämligen i stil med följande:

DIRa1->DIRa270
DIRb6->DIRb30
DIRc500->DIRc505

Jag vill sortera biblioteken först på bokstav OCH sen på siffra.

ls -a | grep DIR | sort -k ???????

DIRa1
|
|
|
|
DIRaN
DIRb6
|
|
|
|
DIRbN
DIRc500
|
|
|
DIRcN

Nu blir det:

DIRa1
DIRa10
DIRa100
DIRa101
|
|
DIRa157
DIRa16
|
|
DIRa2
|
|
DIRaN
DIRb12
|
|
DIRb30
DIRb6
|
|
DIRb9N
DIRc500
|
|
DIRcN

....om jag sorterar på fjärde tecknet d.v.s helt i bokstavsordning, eller helt i sifferordning om jag sorterar numeriskt på femte tecknet (ls -a | grep DIR | sort -nk 1.5), oavsett bokstav. Hur får man med bägge sorteringsmetoderna där den ena har höge prio än den andra?

rejass bild

I så fall borde detta fungera:

ls -a | grep DIR | sort -k 1.4,1.4 -k 1.5n

Sortera alfabetiskt på 4:e tecknet och numeriskt på 5:e till sista tecknet.

/Marcus

nisses bild

Japp! Det funkade. 1000 tack Smile

Måste ändå fråga: Vad innebär det att ange 1.4 två gånger? Blir inte klok på sort......