2013-08-19 24 views
7

Ich habe eine Datei mit Spalten unten dargestellt:sortieren nach Spalte Linux

chr1 91.4062 
chr10 97.9150 
chr11 116.7630 
chr12 106.7870 
chr13 116.1050 
chr14 126.2180 
chr15 110.2320 
chr16 96.8076 
chr17 113.5970 
chr18 86.1011 
chr19 130.6770 
chr2 111.4620 
chr20 68.4864 
chr21 107.0810 
chr22 140.7750 
chr23 110.9590 
chr24 68.4785 
chr25 102.2080 
chr26 72.2762 
chr27 96.2213 
chr28 85.5570 
chr29 126.3800 
chr3 116.1830 
chr30 89.5663 
chr31 89.1227 
chr32 128.6190 
chr4 117.3620 
chr5 78.1921 
chr6 85.4915 
chr7 107.2620 
chr8 112.9560 
chr9 69.0250 
chrX 66.0736 

Ich möchte es sortieren, basierend auf ersten Spalte und die Ausgabe wie folgt aussehen sollte:

chr1 91.4062 
chr2 111.4620 
chr3 116.1830 
chr4 117.3620 
chr5 78.1921 
chr6 85.4915 
chr7 107.2620 
chr8 112.9560 
chr9 69.0250 
chr10 97.9150 
chr11 116.7630 
chr12 106.7870 
chr13 116.1050 
chr14 126.2180 
chr15 110.2320 
chr16 96.8076 
chr17 113.5970 
chr18 86.1011 
chr19 130.6770 
chr20 68.4864 
chr21 107.0810 
chr22 140.7750 
chr23 110.9590 
chr24 68.4785 
chr25 102.2080 
chr26 72.2762 
chr27 96.2213 
chr28 85.5570 
chr29 126.3800 
chr30 89.5663 
chr31 89.1227 
chr32 128.6190 
chrX 66.0736 

Jede Lösung mit Linux-Befehle wären hilfreich.

Antwort

17

sort -V zur Rettung:

sort -V file 

Von man sort:

-V, --version-Art

natürliche Art (version) Zahlen in Text


Falls Sie nicht über die -V Option in Ihrem sort Befehl, gibt es eine Alternative: sortiert nach ersten Spalte auf 4. Zeichen (-k1.4) und dann sortiert numerisch (-n).

sort -k1.4 -n file 

In beiden Fällen ist die Ausgabe wie folgt:

chrX 66.0736 
chr1 91.4062 
chr2 111.4620 
chr3 116.1830 
chr4 117.3620 
... 
chr26 72.2762 
chr27 96.2213 
chr28 85.5570 
chr29 126.3800 
chr30 89.5663 
chr31 89.1227 
chr32 128.6190 
+0

Es sagt, sort: ungültige Option - V – chas

+0

@ user1779730 meine aktualisierte Antwort zu überprüfen, gibt es eine Alternative. – fedorqui

+0

Es funktioniert. Aber es gibt chrX am Anfang, die am Ende sein sollte. – chas

Verwandte Themen