2009-08-30, 15:38
  #1
Medlem
Har kollat på kommandot sort dock är den rätt krånglig. Använder jag "sort indata.txt" sorteras informationen efter bokstavsordning i kolumn 1. Finns även flaggor som sorterar efter högsta talvärde men bara på den första resten är osorterad (kanske skall man använda en for-loop).

Hur gör man för att sortera datan med:
1. totalvikt med vinnande deltagare först i filen
2. sorterad efter vilken fiskeklubb deltagaren tillhör

Deltagare Fiskeklubb Totalvikt (g)

Kalle Karlsson : Krokodilen : 1035
Sven Svensson : Noten : 786
Anders Andersson : Handgranaten : 1234
Jonas Jonasson : Uttern : 1497
Sten Stensson : : 654
Turliga Ture : : 1498
Donald Donaldsson : Noten : 987
Citera
2009-08-30, 16:29
  #2
Medlem
Citat:
Ursprungligen postat av Drakjägarn
Har kollat på kommandot sort dock är den rätt krånglig. Använder jag "sort indata.txt" sorteras informationen efter bokstavsordning i kolumn 1. Finns även flaggor som sorterar efter högsta talvärde men bara på den första resten är osorterad (kanske skall man använda en for-loop).

Hur gör man för att sortera datan med:
1. totalvikt med vinnande deltagare först i filen
2. sorterad efter vilken fiskeklubb deltagaren tillhör

Deltagare Fiskeklubb Totalvikt (g)

Kalle Karlsson : Krokodilen : 1035
Sven Svensson : Noten : 786
Anders Andersson : Handgranaten : 1234
Jonas Jonasson : Uttern : 1497
Sten Stensson : : 654
Turliga Ture : : 1498
Donald Donaldsson : Noten : 987

sort -k n data.txt

n är kolumnnummer och data.txt är filen. Eftersom kolumnerna är olika "långa" kommer dock sort sortera dessa fel. Första Kalle Karlsson har kolumnerna "Kalle", "Karlsson", ":", "Krokodilen", ":" och "1035". Totalt sex kolumner, det har alla utom Sten Stensson och Turliga Ture därför funkar det inte. Därför funkar _inte_ nedanstående (som skulle funkat om de haft lika många kolumner):

1) sort -n -r -k 6 data.txt, sortera "data.txt" baklänges (-r högst längst upp), -n sortera numeriskt -k 6 kolumn 6
2) sort -k 4 data.txt

Men ovanstående fungerar som sagt inte på ditt. Har vi däremot filen som är lika många kolumner, alltså som den här:

Kalle Karlsson : Krokodilen : 1035
Sven Svensson : Noten : 786
Anders Andersson : Handgranaten : 1234
Jonas Jonasson : Uttern : 1497
Sten Stensson : Bävern : 654
Turliga Ture : Hundgranaten : 1498
Donald Donaldsson : Noten : 987

Så funkar det.
Citera
2009-08-30, 16:33
  #3
Bannlyst
Citat:
Ursprungligen postat av Drakjägarn
Har kollat på kommandot sort dock är den rätt krånglig. Använder jag "sort indata.txt" sorteras informationen efter bokstavsordning i kolumn 1. Finns även flaggor som sorterar efter högsta talvärde men bara på den första resten är osorterad (kanske skall man använda en for-loop).

Hur gör man för att sortera datan med:
1. totalvikt med vinnande deltagare först i filen
2. sorterad efter vilken fiskeklubb deltagaren tillhör

Deltagare Fiskeklubb Totalvikt (g)

Kalle Karlsson : Krokodilen : 1035
Sven Svensson : Noten : 786
Anders Andersson : Handgranaten : 1234
Jonas Jonasson : Uttern : 1497
Sten Stensson : : 654
Turliga Ture : : 1498
Donald Donaldsson : Noten : 987


1. sort -t : -n -r -k 3 indata.txt
2. sort -t : -k 2 indata.txt
Citera
2009-08-30, 16:44
  #4
Medlem
@Hedlund och swedala:

Tack, hade missat att räkna kolumnerna och att använda : tecknet efter -t
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in