Tôi đang cố gắng sắp xếp một số dữ liệu bằng cách sử dụng sort
. Tôi nhận thấy nó được sắp xếp theo chữ số chứ không phải số, vì vậy tôi đã thêm -n
cờ. Sau đó, nó dường như chỉ sắp xếp số trên trường đầu tiên. Việc chia nhỏ nó theo trường là một vấn đề vì các dòng có số lượng trường khác nhau (và thật lòng mà nói, tôi không thể hiểu hành vi của nó). Đây là một số dữ liệu mẫu đủ gần mà tôi đang chơi với:
echo -e "b b 1\n23 44\nb 3\na 7\nb b 2\na 1\nb a 10\nb b 10\nb 1\nb a 1\n18 2\nb 10\n18 15\nb a 2\n23 9\nb 2" | sort -n
Input Want Expect? sort -n -n -k1,1 -k2,2 -k3,3 -k4,4…
b b 1 8 2 a 1 23 44 a 1 b a 1
23 44 8 15 a 7 23 9 a 7 b a 10
b 3 23 9 b a 1 8 15 b 1 b a 2
a 7 23 44 b a 2 8 2 b 10 b b 1
b b 2 a 1 b a 10 a 1 b 2 b b 10
a 1 a 7 b b 1 a 7 b 3 b b 2
b a 10 b 1 b b 2 b 1 b a 1 a 1
b b 10 b 2 b b 10 b 10 b a 10 b 1
b 1 b 3 b 1 b 2 b a 2 b 2
b a 1 b 10 b 2 b 3 b b 1 b 3
8 2 b a 1 b 3 b a 1 b b 10 a 7
b 10 b a 2 b 10 b a 10 b b 2 b 10
8 15 b a 10 8 2 b a 2 8 15 8 2
b a 2 b b 1 8 15 b b 1 8 2 8 15
23 9 b b 2 23 9 b b 10 23 44 23 9
b 2 b b 10 23 44 b b 2 23 9 23 44
Lý tưởng nhất là tôi muốn làm cho nó hoạt động trên chính cỗ máy đó, có lõi GNU loại 5,93. Tôi muốn xử lý nó với các công cụ unix đơn giản; Tôi không muốn chỉ đưa vấn đề cho perl, v.v. Tôi hy vọng tương đương với [tưởng tượng]sort --numeric-sort --all-fields --actually-work