sort probléma

Fórumok

sort probléma

Hozzászólások

Sziasztok!
Adott egy csv fájl, amit rendezni kellene. Az " és | jelek miatt azonban helytelenül rendezi a sort.
Pl.:
A sort után így néz ki a fájl:
[code:1:d6295cb0ea]"Window Manager"|""
"Window"|""[/code:1:d6295cb0ea]
A 2. sornak kellene elöl lennie a szótári ABC-rend szerint.

[quote:9095bfa8d4="dvornikl"]Sziasztok!
Adott egy csv fájl, amit rendezni kellene. Az " és | jelek miatt azonban helytelenül rendezi a sort.
Pl.:
A sort után így néz ki a fájl:
[code:1:9095bfa8d4]"Window Manager"|""
"Window"|""[/code:1:9095bfa8d4]
A 2. sornak kellene elöl lennie a szótári ABC-rend szerint.

Próbáld meg megadni a [code:1:9095bfa8d4]--field-separator=\"[/code:1:9095bfa8d4] paraméterrel...
Nem próbáltam, de elvileg... :)

[quote:1287b5a7ba="cheeky"]Próbáld meg megadni a [code:1:1287b5a7ba]--field-separator=\"[/code:1:1287b5a7ba] paraméterrel...
Nem próbáltam, de elvileg... :)

Nem segít. :(

[quote:07e6b2d6fc="dvornikl"]Sziasztok!
Adott egy csv fájl, amit rendezni kellene. Az " és | jelek miatt azonban helytelenül rendezi a sort.
Pl.:
A sort után így néz ki a fájl:

hat nem tudom te mit csinaltal, de nekem:
[code:1:07e6b2d6fc]
andrej@opata:andrej$ sort /tmp/r
"Window"|""
"Window Manager"|""
[/code:1:07e6b2d6fc]
;)
egyebkent a -k segitseget is erdemes kerni.

[quote:d26c52b290="dvornikl"]
A sort után így néz ki a fájl:
[code:1:d26c52b290]"Window Manager"|""
"Window"|""[/code:1:d26c52b290]
A 2. sornak kellene elöl lennie a szótári ABC-rend szerint.

őszinte leszek kipróbáltam amit írtál
a fenti két sort kibővítettem 1-2vel:
[code:1:d26c52b290]"Window Manager"|""
"Window"|""
"balalbal"|""
"walami"
"winlami"
[/code:1:d26c52b290]

aztán:
[code:1:d26c52b290]cat file.txt | sort
"balalbal"|""
"walami"
"Window"|""
"Window Manager"|""
"winlami"
[/code:1:d26c52b290]

sz'al nálam nem kell semmi se ahhoz hogy úgy műküdjön ahogy kell...
vagy van esetleg más is ami szerint rendezed, vagy szűröd?
ha megadnád esetleg meg tudjuk nézni...

nah jóvan asszony itt nyűglődik hogy csináljak ezt meg azt, megcsinálom erre mire postolom.... ;)

[quote:0bef5284f6="anr"]hat nem tudom te mit csinaltal, de nekem:
[code:1:0bef5284f6]
andrej@opata:andrej$ sort /tmp/r
"Window"|""
"Window Manager"|""
[/code:1:0bef5284f6]
;)
egyebkent a -k segitseget is erdemes kerni.

Azt nem írtam, de a | jel utáni ""-ben szöveg is van.
A teljes fájl itt van:
http://cvs.gnome.org/viewcvs/*checkout*/gnome-i18n/glossary/GnomeGlossary.csv?rev=1.7
Ezt módosítottam, majd rendezni akartam.
Rövidítve a két sor:
[code:1:0bef5284f6]"Window"|"The..."
"Window Manager"|"A program..."[/code:1:0bef5284f6]
Gondolom a |" utáni T, ill. A betű kavar be.

[quote:f60ee19d9e="tso"]sz'al nálam nem kell semmi se ahhoz hogy úgy műküdjön ahogy kell...
vagy van esetleg más is ami szerint rendezed, vagy szűröd?
ha megadnád esetleg meg tudjuk nézni...

Érdekes. Ha csak ezt a két sort beírom egy új fájlba, műxik, de az előző hozzászólásomban írt címen levő teljes fájllal már nem.

[quote:e9d0cf7704="tso"]sz'al nálam nem kell semmi se ahhoz hogy úgy műküdjön ahogy kell...

Úgy sejtem, az eltérő működés oka az eltérő nyelvi beállítás lehet, hiszen a sort az aktuális nyelv szabályai szerint rendez ábécébe.
Ezért ha biztosra akarsz menni szkriptben, akkor érdemes fix LC_ALL változóval indítani a sort-ot.
Az eredeti problémára javaslom ezt: sort -t \" -k 2,2 -s
-t \" -- az idézőjel a mezőhatároló
-k 2,2 -- csak a második oszlopot vesszük figyelembe
-s -- egyezés esetén az eredeti sorrend megtartása a további oszlopok szerinti rendezés helyett

[quote:fe6e6b490f="egmont"]Az eredeti problémára javaslom ezt: sort -t \" -k 2,2 -s
-t \" -- az idézőjel a mezőhatároló
-k 2,2 -- csak a második oszlopot vesszük figyelembe
-s -- egyezés esetén az eredeti sorrend megtartása a további oszlopok szerinti rendezés helyett

Szuper, ezzel jól rendezi. Köszönöm!
OFF: Egmont, megkaptad a tegnapelőtti "gimp-print forditas" tárgyú levelemet?