OSX पर ग्नू `सॉर्ट -R` के बराबर?


37

GNU sortटेक्स्ट उपयोगिता -Rइनपुट लाइनों को यादृच्छिक बनाने के लिए एक गैर-मानक विकल्प पेश करती है।

OSX sortमें यह एक्सटेंशन नहीं है। क्या अन्य पाठ फ़िल्टर में समान कार्यक्षमता उपलब्ध है?

जवाबों:


50

यदि आप चाहते हैं, तो आप जीएनयू स्थापित कर सकते हैं sortजीएनयू के माध्यम से coreutils से अधिक पैकेज Homebrew , जो ओएस एक्स के लिए एक पैकेज प्रबंधक है

इसे चलाने से Homebrew स्थापित होगा।

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

फिर बस स्थापना निर्देशों का पालन करें। जब Homebrew स्थापित हो, तो चलाएं

brew install coreutils

यह GNU सॉर्ट को स्थापित करेगा gsort, इसलिए आप इसे sortकिसी भी GNU लिनक्स की तरह उपयोग कर सकते हैं ।


वैकल्पिक रूप से, इन स्टैक ओवरफ्लो प्रश्नों पर एक नज़र डालें, जिनमें कुछ तरीकों का उल्लेख है:

मैं Redhat Linux पर एक मानक उपकरण का उपयोग करके फ़ाइल में लाइनें कैसे यादृच्छिक कर सकता हूं? मैं
यूनिक्स कमांड लाइन में एक पाठ फ़ाइल की पंक्तियों को कैसे फेरबदल कर सकता हूं?

या इस कमांडलाइनफू.कॉम पेज पर एक नज़र डालें:

रेंडम लाइनों (विपरीत के प्रकार)


होमब्रेव विकल्प काम करता है, जैसा कि जुड़ा हुआ awk या perl constructions होगा (हालांकि मुझे लगता है कि वे धीमे हैं।) बाकी सभी गो नहीं हैं, क्योंकि वे केवल GNU हैं।
phs

7

ओएस एक्स पर, अगर आप होमब्रे (लेकिन आपको वास्तव में चाहिए) स्थापित नहीं करना चाहते हैं, तो आप उपयोग कर सकते हैं perlया ruby:

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

या

ruby -e 'puts STDIN.readlines.shuffle'

0

पैकेज से उपयोग करें shufया करें , लेकिन फिर आपको अपनी फ़ाइल में जोड़ना होगा , उदाहरण के लिए:sortcoreutils/usr/local/binPATH~/.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

आप rlhomebrew ( brew install randomize-lines) के माध्यम से कमांड स्थापित कर सकते हैं ।

यह काफी तेज़ है और इसमें लौटी वस्तुओं की संख्या को सीमित करने के विकल्प हैं, साथ ही सीमांकक निर्दिष्ट करें (उदाहरण के लिए लाइन फीड के बजाय स्थान)।

(यह भी देखें https://stackoverflow.com/a/42056195/43615 ।)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.