Sziasztok,
itt egy alkatrészlista részlet a nyáktervezőmből.
Qty Value Package
3 100e3 M0805
3 33 M0805
1 270 M0805
Egy scripttel szeretném rendeztetni a 2. oszlop szerint, de az oszlopok sorrendjét megtartva. Egyelőre úgy csinálnám, hogy
cat lista | awk '{ print $2 $0 }' | sort | sed -e 's/[0-9e]* //'
De így is szívás, mert a kívánatos sorrend ez lenne:
3 33 M0805
1 270 M0805
3 100e3 M0805
és a sort ugyebár az első számjegy szerint rendez, tehát 100e3, 270, 33 :(
Nem szeretnék ezernyi leading zero-t használni, csak van frappánsabb megoldás is.
Mit tanácsoltok?
István
- 1064 megtekintés
Hozzászólások
> és a sort ugyebár az első számjegy szerint rendez,
http://linux.die.net/man/1/sort
"-n, --numeric-sort compare according to string numerical value"
- A hozzászóláshoz be kell jelentkezni
Jó a sort, csak egy -n kell még neki. A print helyett pedig printf.
cat lista | awk '{ printf("%d %s\n", $2, $0) }' | sort -n | sed -e 's/[0-9e]* //'
- A hozzászóláshoz be kell jelentkezni
Ez lesz a megoldas, ha a 100e3-at 100.000,0-nek erted:
cat lista | sort -g -k2
man sort:
-g: compare according to general numerical value
-k: key, aka field number
- A hozzászóláshoz be kell jelentkezni
zamboriz, stra, rubasov - köszönöm, mindegyiket átnézem.
István
- A hozzászóláshoz be kell jelentkezni