में फ़ाइल से यादृच्छिक रेखाएं चुनें, मैं इनपुट फ़ाइल से आउटपुट और आउटपुट से अन्य यादृच्छिक रेखाएं चुनना चाहता हूं। यह कैसे किया जा सकता है?बैश स्क्रिप्ट में
उत्तर
क्रमबद्ध फ़ाइल बेतरतीब ढंग से और लेने के लिए पहले 100
लाइनों:
$ sort -R input | head -n 100 >output
'सॉर्ट' वास्तव में एक साथ समान रेखाएं समान रूप से टाइप करता है, इसलिए यदि आपके पास डुप्लिकेट लाइनें हो सकती हैं और आप 'shuf' (एक gnu उपकरण) स्थापित है, इसके लिए इसका उपयोग करना बेहतर है। – Kevin
अंडलसो, यह निश्चित रूप से आपको ** ** बहुत इंतजार करने जा रहा है यदि आपके पास काफी बड़ी फ़ाइल है - 80 कि.मी. लाइनें - जबकि, 'shuf -n' तत्काल कार्य करता है। – Rubens
सॉर्ट -आर मैक ओएस एक्स (10.9) – tfb785
-n
विकल्प के साथ उपयोग shuf
नीचे दिखाया गया है, N
यादृच्छिक लाइनों प्राप्त करने के लिए के रूप में: बेतरतीब ढंग से
shuf -n N input > output
यह स्वीकार्य उत्तर होना चाहिए। वाह, शफ बहुत तेज़ है। - 40000 लाइनों के साथ एक टेक्स्टफाइल से 10000 यादृच्छिक रेखाएं चुनना तत्काल है।'Sort -R' का उपयोग करने की कोशिश करने में इतनी देर लग गई कि मैं केवल CTRL-C इसे – carpii
यदि आपको केवल यादृच्छिक क्रम में नहीं, तो यादृच्छिक क्रम में नहीं, तो शफ बहुत अक्षम है (बड़ी फ़ाइल के लिए): जलाशय करना बेहतर है नमूनाकरण, जैसा कि [इस उत्तर] में है (https://stackoverflow.com/a/692401/933228)। – petrelharp
न तो shuf और sort -R मैक ओएसएक्स के लिए उपलब्ध हैं। कोई सुझाव? –
क्रमबद्ध फ़ाइल और एन लेने पहली पंक्तियां –
यह भी देखें http://stackoverflow.com/questions/12354659/how-to-select-random-lines-from-a-file। –
यह एक डुप्लिकेट नहीं है - वह एन लाइन बनाम 1 लाइन चाहता है। – OneSolitaryNoob