เทียบเท่า gnu `sort -R` บน OSX หรือไม่


37

sortยูทิลิตี้ข้อความของGNU มี-Rตัวเลือกที่ไม่ได้มาตรฐานเพื่อสุ่มบรรทัดอินพุต

OSX sortไม่มีส่วนขยายนี้ มีฟังก์ชันการทำงานที่คล้ายกันในตัวกรองข้อความอื่นหรือไม่

คำตอบ:


50

หากคุณต้องการคุณสามารถติดตั้ง GNU sortผ่านแพ็คเกจcoreutilsของ GNU ผ่านHomebrewซึ่งเป็นผู้จัดการแพ็คเกจสำหรับ OS X

การรันสิ่งนี้จะติดตั้ง Homebrew

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

จากนั้นเพียงทำตามคำแนะนำในการติดตั้ง เมื่อ Homebrew ติดตั้งแล้วให้เรียกใช้

brew install coreutils

นี่จะเป็นการติดตั้ง GNU เรียงgsortดังนั้นคุณสามารถใช้มันเหมือนsortบน GNU Linux ใด ๆ


หรือดูที่คำถามเกี่ยวกับ Stack Overflow ซึ่งกล่าวถึงวิธีการสองสามวิธี:

ฉันจะสุ่มบรรทัดในไฟล์โดยใช้เครื่องมือมาตรฐานบน Redhat Linux ได้
อย่างไรฉันจะสลับบรรทัดของไฟล์ข้อความในบรรทัดคำสั่ง Unix ได้อย่างไร

หรือดูที่หน้า commandlinefu.com นี้:

สุ่มบรรทัด (ตรงข้ามกับ | เรียงลำดับ)


ตัวเลือก homebrew ทำงานเหมือนการเชื่อมโยง awk หรือ perl constructions (แต่ฉันคิดว่ามันช้ากว่า) ส่วนที่เหลือไม่ไปเพราะเป็น GNU เท่านั้น
phs

7

บน OS X หากคุณไม่ต้องการติดตั้งโฮมบรูว์ (แต่คุณควรทำจริงๆ) คุณสามารถใช้perlหรือruby:

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

หรือ

ruby -e 'puts STDIN.readlines.shuffle'

0

การใช้งานshufหรือsortจากcoreutilsแพคเกจ แต่แล้วคุณได้เพิ่ม/usr/local/binที่คุณPATHใน~/.bashrcไฟล์ตัวอย่างเช่น:

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

หรือคุณสามารถลองex:

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

ที่มา: วิธีการสลับรายการเป็นกลุ่ม?


0

คุณสามารถติดตั้งrlคำสั่งผ่าน homebrew ( brew install randomize-lines)

มันค่อนข้างเร็วและมีตัวเลือกในการ จำกัด จำนวนของรายการที่ส่งคืนรวมทั้งระบุตัวคั่น (เว้นวรรคแทนการป้อนบรรทัดเป็นต้น)

(ดูที่https://stackoverflow.com/a/42056195/43615 )

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.