ha nem sort, akkor mi?

Fórumok

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

Hozzászólások

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]* //'

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