OS X पर shuf स्थापित करें?


49

उबुन्टु लिनक्स में शुफ़ नामक एक बेहतरीन उपकरण है, जो सिर की तरह काम करता है, सिवाय इसके कि यह आपको दस रैंडम लाइनें देता है। मैं इसे Homebrew पर नहीं ढूंढ सका। OS X पर इसे स्थापित करने का सबसे सरल तरीका क्या है?


2
यह ग्नू टेक्स्ट यूटिलिटीज़ पैकेज का हिस्सा है। Coreutils का हिस्सा लगता है, लेकिन मुझे नहीं पता कि होमब्रे पर सामान कैसे पैक किया जाता है।
jl8e

जवाबों:


78

आप के साथ coreutils स्थापित कर सकते हैं brew install coreutils

shufके रूप में जोड़ा जाएगा gshuf। जब आप कोरुटिल स्थापित करते हैं तो कैवेट पढ़ें।


2
कैवेट सिर्फ यह प्रतीत होता है कि आपको उपकरण के उचित नामों का उपयोग नहीं करना चाहिए, लेकिन उन्हें जी के साथ उपसर्ग करना चाहिए (जैसे "gshuf"), सही?
अनफिन कैट

2
हां, या वैकल्पिक रूप से अपने पेट को कॉन्फ़िगर करें ताकि आपको वह मिल जाए जो आप उम्मीद करते हैं।
जे। थॉम्पसन

3
brew install coreutilsओएसएक्स gपर डिफ़ॉल्ट रूप से उपसर्ग के साथ बर्तन स्थापित करता है , इसलिए आप इसे उपरोक्त कमांड का उपयोग करके स्थापित कर सकते हैं।
ब्रैड पार्क्स

13

फिर भी एक और समाधान विक्रेता द्वारा आपूर्ति किए गए उपकरणों के बारे में सीखना है। निश्चित रूप से आप कर सकते थे श्रृंखला jot, paste, sort, cut, headऔर एक ही परिणाम मिलता है।

jot -r "$(wc -l FILE)" 1 |
paste - FILE |
sort -n |
cut -f 2- |
head -n 10
  • jot प्रत्येक लाइन के लिए FILE में लाइनों की संख्या से एक यादृच्छिक संख्या का उत्पादन करता है
  • पेस्ट प्रत्येक पंक्ति में यादृच्छिक संख्या को FILE में पेस्ट करता है
  • सॉर्ट क्रमबद्ध प्रत्येक पंक्ति
  • कट प्रत्येक पंक्ति से यादृच्छिक संख्या निकालता है
  • हेड पहले 10 लाइनों को आउटपुट करता है

2
मैं वास्तव में इस उत्तर का सार की तरह, तुम्हें पता है जब आप किसी अन्य मशीन जहाँ आप जो भी कारण के लिए अतिरिक्त उपकरण स्थापित करने के लिए सक्षम नहीं हैं पर एक ही बात करने के लिए चाहते हो सकता है कभी नहीं
forquare

मैंने पहले कभी नहीं सुना था jot। मेरे ज्ञान का विस्तार करने के लिए धन्यवाद।
tommy.carstensen

9

आप के रूप में Macports के साथ coreutils स्थापित कर सकते हैं

sudo port install coreutils

यह जीएनयू कोर के बर्तनों को / ऑप्ट / स्थानीय / बिन में एजी प्रीपेड के साथ रखेगा

उदा gshuf


2
मैं macports, धन्यवाद के साथ इस एक का इस्तेमाल किया। मुझे Homebrew ज्यादा पसंद नहीं है
Zorgatone

महान जवाब अगर आपके पास सूडो अधिकार हैं। मैं नही।
tommy.carstensen

@ tommy.carstensen फिर अपने व्यवस्थापक से पूछें - उन्होंने आपके लिए इसे एक कारण से करना मुश्किल कर दिया होगा
user151019

3

एक अन्य विकल्प randomize-lines(होमब्रे) पैकेज स्थापित करना है , जिसमें एक rlकमांड है जिसमें शूफ के समान कार्यक्षमता है।

Usage: rl [OPTION]... [FILE]...
Randomize the lines of a file (or stdin).

  -c, --count=N  select N lines from the file
  -r, --reselect lines may be selected multiple times
  -o, --output=FILE
                 send output to file
  -d, --delimiter=DELIM
                 specify line delimiter (one character)
  -0, --null     set line delimiter to null character
                 (useful with find -print0)
  -n, --line-number
                 print line number with output lines
  -q, --quiet, --silent
                 do not output any errors or warnings
  -h, --help     display this help and exit
  -V, --version  output version information and exit
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.