2013-04-04 23 views
7

Công việc của tôi liên quan đến rất nhiều trường sắp xếp từ các tệp rất lớn. Tôi thường làm điều này với lệnh sort trong bash. Thật không may, khi tôi bắt đầu một loại tôi không bao giờ thực sự chắc chắn bao lâu nó sẽ mất. Tôi có nên chờ một giây để các kết quả xuất hiện hay tôi nên bắt đầu làm việc trên một thứ khác trong khi nó chạy?Có thể hiển thị tiến trình sắp xếp trong linux không?

Có cách nào có thể để có được một ý tưởng về mức độ phát triển của phân khúc đã đạt được hoặc tốc độ hoạt động nhanh hay không?

$ cut -d , -f 3 VERY_BIG_FILE | sort -du > output 
+2

Nó hoạt động 'phẳng'. Không có cách nào đáng tin cậy để phát hiện nó đã tiến triển bao xa và còn phải chạy bao lâu nữa. Bạn có thể poke xung quanh/proc cho các loại và thực hiện một số khoản khấu trừ, nhưng có lẽ không. –

+0

Có lẽ một thói quen sắp xếp thay thế sau đó? Hầu hết các thói quen sắp xếp (như QuickSort) ít nhất cũng có ý tưởng về cách sắp xếp. –

Trả lời

8

Không, GNU sort không thực hiện báo cáo tiến độ.

Tuy nhiên, nếu bạn đang sử dụng sort chỉ để loại bỏ bản sao, và bạn không thực sự quan tâm đến thứ tự, sau đó có một more scalable way làm điều đó:

awk '! a[$0]++' 

này viết ra sự xuất hiện đầu tiên của một ngay khi nó được nhìn thấy, có thể cho bạn ý tưởng về tiến trình.

-4

Bạn có thể thực hiện của bạn "loại" trong nền bạn sẽ nhận được nhanh chóng và bạn có thể làm các công việc khác

$ sort ...... & # (& có nghĩa là chạy ở chế độ nền)

+3

Trong khi tuyên bố của bạn chắc chắn là đúng câu trả lời của bạn không có gì để làm với câu hỏi. – tink

1

Bạn có thể muốn cung cấp cho pv một thử, nó sẽ cung cấp cho bạn một ý tưởng khá tốt về những gì đang xảy ra trong đường ống của bạn về thông lượng.

Ví dụ (chưa được kiểm tra) tiêm pv trước và sau khi lệnh sort để có được một ý tưởng về thông:

$ cut -d , -f 3 VERY_BIG_FILE | pv -cN cut | sort -du | pv -cN sort > output 

EDIT: Tôi bỏ lỡ -u trong lệnh sắp xếp của bạn, vì vậy việc tính toán dòng đầu tiên có thể nhận được một sản lượng phần trăm là vô hiệu. Đã xóa phần đó khỏi câu trả lời của tôi.

+0

Trong khi 'pv' là một công cụ tuyệt vời, nó chỉ đưa ra một ý tưởng chúng ta thực sự là bao nhiêu nếu bạn cho nó tùy chọn' -s' để cho biết tổng chiều dài. – glglgl

+0

@glglgl Ví dụ của tôi đã sử dụng '-s' trước khi chỉnh sửa, nhưng vì chúng tôi không thể biết kích thước sau khi sắp xếp -u tôi đã xóa nó. OP yêu cầu một giải pháp mà ít nhất giúp xác định _ "nó hoạt động nhanh như thế nào" _, mà 'pv' làm, theo một cách nào đó. –

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