Tương đương của gnu `sort -R` trên OSX?


37

sortTiện ích văn bản GNU có một -Rtùy chọn không chuẩn để ngẫu nhiên hóa các dòng đầu vào.

OSX sortkhông có phần mở rộng này. Có chức năng tương tự có sẵn trong một bộ lọc văn bản khác?

Câu trả lời:


50

Nếu bạn muốn, bạn có thể cài đặt GNU sortthông qua gói coreutils của GNU trên Homebrew , đây là trình quản lý gói cho OS X.

Chạy này sẽ cài đặt Homebrew.

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Sau đó chỉ cần làm theo hướng dẫn cài đặt. Khi Homebrew được cài đặt, hãy chạy

brew install coreutils

Điều này sẽ cài đặt GNU sort như gsort, vì vậy bạn có thể sử dụng nó như sorttrên bất kỳ GNU Linux nào.


Ngoài ra, hãy xem các câu hỏi Stack Overflow này, trong đó đề cập đến một vài phương thức:

Làm cách nào tôi có thể chọn ngẫu nhiên các dòng trong tệp bằng một công cụ tiêu chuẩn trên Redhat Linux
Làm cách nào tôi có thể xáo trộn các dòng của tệp văn bản trong dòng lệnh Unix?

Hoặc hãy xem trang Commandlinefu.com này:

Ngẫu nhiên các dòng (ngược lại với | sort)


Tùy chọn homebrew hoạt động, cũng như các cấu trúc awk hoặc perl được liên kết (mặc dù tôi tưởng tượng chúng chậm hơn.) Phần còn lại không hoạt động, vì chúng chỉ dành cho GNU.
phs

7

Trên OS X, nếu bạn không muốn cài đặt homebrew (nhưng bạn thực sự nên), bạn có thể sử dụng perlhoặc ruby:

perl -MList::Util -e 'print List::Util::shuffle <>'

hoặc là

ruby -e 'puts STDIN.readlines.shuffle'

0

Sử dụng shufhoặc sorttừ coreutilsgói, nhưng sau đó bạn đã thêm /usr/local/binvào của bạn PATHtrong ~/.bashrctập tin, ví dụ:

export PATH=/usr/local/sbin:/usr/local/bin:$PATH

Ngoài ra, bạn có thể thử ex:

ex -s +"%s/^/\=reltimestr(reltime())[-2:].' '" +"sort n" +"%s/^\S* //" +%p -cq! /dev/stdin

Nguồn: Làm thế nào để xáo trộn một danh sách trong vim?


0

Bạn có thể cài đặt rllệnh thông qua homebrew ( brew install randomize-lines).

Nó khá nhanh và có các tùy chọn để giới hạn số lượng các mục được trả về, cũng như chỉ định dấu phân cách (ví dụ, khoảng trắng thay vì nguồn cấp dữ liệu).

(Xem thêm https://stackoverflow.com/a/42056195/43615 .)

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.