lệnh sắp xếp trong unix với sắp xếp số


10

Tôi có tập tin1:

"$lvl=57"
"$lvl=20"
"$lvl=48"
"$lvl=17"
"$lvl=58"

File2 tôi muốn:

"$lvl=17"
"$lvl=20"
"$lvl=48"
"$lvl=57"
"$lvl=58"

Về cơ bản sắp xếp số lượng tập tin1.


Khi tôi chạy một Unix đơn giản sorttrên File1 của bạn, không có tùy chọn nào, tôi nhận được File2 của bạn. Bạn đang làm gì khác nhau? Bạn đang bỏ qua câu hỏi này là gì?
Scott

Câu trả lời:


17

Tôi thích -V --version-sort: nó hoạt động rất tốt trong nhiều tình huống trộn chuỗi và số

sort -V

Tôi sử dụng tùy chọn này rất thường xuyên ...

Theo một số hướng, ls -vcho phiên bản sắp xếp ls.


10

Bạn cần nói sort -nđể sắp xếp phần sau =:

sort -t = -k 2n

Gần đây tôi đã tìm kiếm điều này ^^. Nhưng thêm một câu hỏi Q. Làm gì -k2n? Điều đó có liên quan đến sắp xếp số? cảm ơn bạn.
αғsнιη

2
@KasiyA -kđịnh nghĩa một khóa sắp xếp. Xem trang người đàn ông để biết chi tiết. -k2nđịnh nghĩa một khóa sắp xếp bắt đầu từ trường thứ hai và kết thúc ở cuối dòng và biến nó thành một khóa sắp xếp số.
Stéphane Chazelas

0

sử dụng sắp xếp:

sort -n file1 > file2

-n, --numeric-sort
so sánh theo giá trị số chuỗi

 sort -g file1 > file 2

-g, - tổng hợp-số-sắp xếp


3
Không, tất cả các dòng có cùng thứ hạng sort -nvì chúng không bắt đầu bằng một số. Lý do nó sắp xếp chúng là loại toàn dòng cuối cùng (theo từ vựng, không phải bằng số) được thực hiện cho các dòng có cùng thứ hạng. Điều đó sẽ sắp xếp "$lvl=17"trước "$lvl=2".
Stéphane Chazelas

@ StéphaneChazelas cảm ơn bạn đã chỉ ra.
Hackaholic

Để diễn giải, -n-glà dư thừa ở đây vì đầu vào không phải là số. Vì vậy, câu trả lời này là sai lệch, do đó downvote (cũng lưu ý rằng -gvà các tùy chọn dài là cụ thể của GNU).
Stéphane Chazelas

nhưng -g là loại tổng quát tốt
Hackaholic

Đó vẫn là để sắp xếp các giá trị số, điểm khác biệt -nlà nó không giới hạn ở số nguyên thập phân. Điều đó vẫn sẽ sắp xếp "$lvl=17"trước đây "$lvl=2"như là một phần của phân loại cuối cùng.
Stéphane Chazelas

0

Tôi thấy rằng, bạn chỉ cần chạy sort -h, nó sẽ làm việc. Họ gọi nó --human-numberic-sort.

sort -h file1 > file2

-1

sort -nlà những gì bạn muốn sử dụng. Nó sắp xếp như chúng ta sắp xếp số.sort -k 2 -n file1


2
Nhưng OP muốn sắp xếp theo thứ tự tăng dần, đó là mặc định. Tại sao bạn đề nghị thứ tự ngược lại?
G-Man nói 'Phục hồi Monica'

ở trên là chính xác khi các trường được phân tách bằng các tab hoặc dấu cách và sẽ không hoạt động trong trường hợp của OP.
αғsнιη
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.