2013-08-19 89 views
7

Tôi có một tập tin với các cột hiển thị dưới đây:sắp xếp theo cột 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 

Tôi muốn sắp xếp nó dựa trên cột 1 và đầu ra sẽ giống như dưới đây:

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 

Bất kỳ giải pháp sử dụng các lệnh linux sẽ hữu ích.

Trả lời

17

sort -V để giải cứu:

sort -V file 

Từ man sort:

-V, --version-sort

loại tự nhiên của (phiên bản) số trong văn bản


Trong trường hợp bạn không có -V tùy chọn trong lệnh sort của bạn, có một sự thay thế: sắp xếp theo cột xuất phát đầu tiên trên nhân vật thứ 4 (-k1.4) và sau đó sắp xếp số lượng (-n).

sort -k1.4 -n file 

Trong cả hai trường hợp đầu ra như sau:

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

Nó nói, sắp xếp: tùy chọn không hợp lệ - V – chas

+0

@ user1779730 kiểm tra câu trả lời của tôi cập nhật, có một sự thay thế. – fedorqui

+0

Nó hoạt động. Nhưng nó cho chrX trong đầu mà nên được ở cuối. – chas

Các vấn đề liên quan