Portál AbcLinuxu, 16. července 2025 05:11


Dotaz: sort - setřídění podle určitého sloupce

5.3.2006 23:03 Pavel1 | skóre: 33
sort - setřídění podle určitého sloupce
Přečteno: 374×
Odpovědět | Admin
Potřebuji setřídit například podle sloupce 3 až 4 (né až do konce řádku). Lze to pomocí sort a s jakými správnými parametry a nebo i něčím jiným?

Pokud zkouším sort s param. -k, tak mi to třídí vždy do konce řádků.
$ cat soubor
1 5 4 1 8 1  1.radek
1 5 4 1 7 1  2.radek
1 4 5 1 6 1  3.radek
1 3 6 1 5 1  4.radek
1 3 3 1 5 1  5.radek

$ cat soubor | sort -k3,4
1 3 3 1 5 1  5.radek
1 5 4 1 7 1  2.radek
1 5 4 1 8 1  1.radek
1 4 5 1 6 1  3.radek
1 3 6 1 5 1  4.radek

A já potřebuji výstup (pouze třídit podle 3 a 4 sloupce, ne podle ničeho jiného) :
1 3 3 1 5 1  5.radek
1 5 4 1 8 1  1.radek
1 5 4 1 7 1  2.radek
1 4 5 1 6 1  3.radek
1 3 6 1 5 1  4.radek
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

5.3.2006 23:17 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: sort - setřídění podle určitého sloupce
Odpovědět | | Sbalit | Link | Blokovat | Admin
Asi jsem špatně pochopil vaše zadání, protože mi ten prostřední výpis připadá jako správné řešení úlohy "seřadit řádky podle hodnot třetího a čtvrtého sloupce".
5.3.2006 23:24 Pavel1 | skóre: 33
Rozbalit Rozbalit vše Re: sort - setřídění podle určitého sloupce
Ne ne, výstup je setříděn navíc i podle 5. sloupce, ale já potřebuji, aby to třídilo pouze podle 3. a 4 sloupce, ostatní musí zůstat stejné, jako vstupní soubor.
5.3.2006 23:27 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: sort - setřídění podle určitého sloupce
Ale to jste původně nenapsal. Napsal jste pouze, že chcete seřadit vstupní řádky podle hodnot třetího a čtvrtého sloupce. Takovému zadání zcela vyhovuje druhý i třetí výpis. Teprve teď se dozvídám, že chcete něco jiného: seřadit řádky podle klíče skládajícího se ze třetího sloupce, čtvrtého sloupce a původního pořadí.

V takovém případě je řešením již zmíněný přepínač -s, který je ostatně dostatečně popsán v dokumentaci.

5.3.2006 23:39 Pavel1 | skóre: 33
Rozbalit Rozbalit vše Re: sort - setřídění podle určitého sloupce
Popsal jsem to snad dostatečně 2x, alespoň jsem byl přesvědčen :

podle sloupce 3 až 4 (né až do konce řádku)

pouze třídit podle 3 a 4 sloupce, ne podle ničeho jiného

Jinak díky vám oboum za odpovědi, ač koukám do manu a zkouším, -s mi prostě uniklo. Moje chyba.
jnc avatar 5.3.2006 23:23 jnc | skóre: 6
Rozbalit Rozbalit vše Re: sort - setřídění podle určitého sloupce
Odpovědět | | Sbalit | Link | Blokovat | Admin
man sort:
       -s, --stable
              stabilize sort by disabling last-resort comparison
5.3.2006 23:26 Pavel1 | skóre: 33
Rozbalit Rozbalit vše Re: sort - setřídění podle určitého sloupce
Ano, -s to vypadá že je to, co potřebuji, díky.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.