सॉर्ट किए जाने वाले आइटम को किसी भी तरह से सीमित किया जाना चाहिए
लिनक्स टेक्स्ट फ़ाइल में डेटा सॉर्ट कमांड के साथ सॉर्ट किया जा सकता है जब तक कि प्रत्येक तत्व किसी भी तरह से सीमित नहीं हो जाता है। अक्सर, अल्पविराम को सीमित जानकारी के लिए विभाजक के रूप में उपयोग किया जाता है।
छंटनी के लिए बुनियादी नियम
सॉर्ट कमांड उन्हें संख्यात्मक रूप से और वर्णानुक्रमित क्रमबद्ध करने के लिए टेक्स्ट फ़ाइल में पंक्तियों को पुनर्व्यवस्थित करता है। सॉर्ट कमांड के लिए डिफ़ॉल्ट नियम हैं:
- पाठ जो एक संख्या से शुरू होता है वह पाठ से शुरू होता है जो एक अक्षर से शुरू होता है; कम संख्या पहले क्रमबद्ध करें।
- टेक्स्ट जो वर्णमाला में दिखाई देने वाले अक्षर से शुरू होता है, इससे पहले कि अन्य टेक्स्ट प्रविष्टियों का पहला अक्षर टेक्स्ट से पहले सॉर्ट किया गया हो जो बाद में वर्णमाला में दिखाई देने वाले अक्षर से शुरू होता है।
- जहां पाठ एक ही अक्षर के अपरकेस और लोअरकेस उदाहरणों से शुरू होता है, तो लोअरकेस उदाहरण पहले क्रमबद्ध किया जाता है।
एक पाठ फ़ाइल छंटनी
एक सीमित लिनक्स फ़ाइल में लाइनों को सॉर्ट करने के लिए, आप इस प्रकार सॉर्ट कमांड का उपयोग करते हैं:
$ sort -k2 test.txtजो दूसरे कॉलम से शुरू होने वाले पात्रों के अनुसार फ़ाइल "test.txt" टाइप करता है (के 2 दूसरे कॉलम को संदर्भित करता है)। इनपुट फ़ाइल सामग्री मानना है:
1, जस्टिन टिम्बरलेक, शीर्षक 545, मूल्य $ 7.30 2, टेलर स्विफ्ट, शीर्षक 723, मूल्य $ 7.90 3, मिक जागर, शीर्षक 610, मूल्य $ 7.90 4, लेडी गागा, शीर्षक 118, मूल्य $ 7.30 5, जॉनी कैश, शीर्षक 482, मूल्य $ 6.50 6, एल्विस प्रेस्ली, शीर्षक 335, मूल्य $ 7.30 7, जॉन लेनन, शीर्षक 271, मूल्य $ 7.90 8, माइकल जैक्सन, शीर्षक 373, मूल्य $ 5.50चूंकि इस उदाहरण के दूसरे कॉलम में पहले और अंतिम नाम होते हैं, क्रमबद्ध आउटपुट को दूसरे कॉलम-एल्विस, जॉन, जॉनी, जस्टिन, लेडी, माइकल, मिक और टेलर में प्रत्येक व्यक्ति के पहले नाम के पहले अक्षर द्वारा व्यवस्थित किया जाता है। , जैसा की नीचे दिखाया गया:
6, एल्विस प्रेस्ली, शीर्षक 335, मूल्य $ 6.30 7, जॉन लेनन, शीर्षक 271, मूल्य $ 7.90 5, जॉनी कैश, शीर्षक 482, मूल्य $ 6.50 1, जस्टिन टिम्बरलेक, शीर्षक 545, मूल्य $ 6.30 4, लेडी गागा, शीर्षक 118, मूल्य $ 6.30 8, माइकल जैक्सन, शीर्षक 373, मूल्य $ 5.50 3, मिक जागर, शीर्षक 610, मूल्य $ 7.90 2, टेलर स्विफ्ट, शीर्षक 723, मूल्य $ 7.90यदि आप फ़ाइल को -k3 के साथ सॉर्ट करते हैं (कॉलम 3-शीर्षक संख्या कॉलम से शुरू होने वाली लाइन सामग्री का उपयोग करके), आउटपुट है:
4, लेडी गागा, शीर्षक 118, मूल्य $ 6.30 7, जॉन लेनन, शीर्षक 271, मूल्य $ 7.90 6, एल्विस प्रेस्ली, शीर्षक 335, मूल्य $ 6.30 8, माइकल जैक्सन, शीर्षक 373, मूल्य $ 5.50 5, जॉनी कैश, शीर्षक 482, मूल्य $ 6.50 1, जस्टिन टिम्बरलेक, शीर्षक 545, मूल्य $ 6.30 3, मिक जागर, शीर्षक 610, मूल्य $ 7.90 2, टेलर स्विफ्ट, शीर्षक 723, मूल्य $ 7.90तथा
$ sort -k4 test.txtकीमत से क्रमबद्ध एक सूची तैयार करता है:
8, माइकल जैक्सन, शीर्षक 373, मूल्य $ 5.50 1, जस्टिन टिम्बरलेक, शीर्षक 545, मूल्य $ 6.30 4, लेडी गागा, शीर्षक 118, मूल्य $ 6.30 6, एल्विस प्रेस्ली, शीर्षक 335, मूल्य $ 6.30 5, जॉनी कैश, शीर्षक 482, मूल्य $ 6.50 2, टेलर स्विफ्ट, शीर्षक 723, मूल्य $ 7.90 3, मिक जागर, शीर्षक 610, मूल्य $ 7.90 7, जॉन लेनन, शीर्षक 271, मूल्य $ 7.90एक क्रमबद्ध रिवर्सिंग
-r विकल्प सॉर्टिंग को उलट देता है। उदाहरण के लिए, ऊपर दिए गए परिणामों का उपयोग करना:
$ sort -k4 -r test.txtपैदावार:
7, जॉन लेनन, शीर्षक 271, मूल्य $ 7.90 3, मिक जागर, शीर्षक 610, मूल्य $ 7.90 2, टेलर स्विफ्ट, शीर्षक 723, मूल्य $ 7.90 5, जॉनी कैश, शीर्षक 482, मूल्य $ 6.50 6, एल्विस प्रेस्ली, शीर्षक 335, मूल्य $ 6.30 4, लेडी गागा, शीर्षक 118, मूल्य $ 6.30 1, जस्टिन टिम्बरलेक, शीर्षक 545, मूल्य $ 6.30 8, माइकल जैक्सन, शीर्षक 373, मूल्य $ 5.50एक क्रमबद्ध फ़ाइल सहेजा जा रहा है
फ़ाइल को सॉर्ट करना इसे सहेजता नहीं है। किसी फ़ाइल में क्रमबद्ध सूची को सहेजने के लिए, आप रीडायरेक्ट ऑपरेटर का उपयोग करते हैं:
sort -k4 -r test.txt> test_new.txtजहां "test_new.txt" नई फ़ाइल है।
एक स्ट्रीम आउटपुट छंटनी
आप पाइप ऑपरेटर जैसे स्ट्रीम के आउटपुट में सॉर्ट कमांड भी लागू कर सकते हैं:
$ ls -al | sort -r -n -k5यह फ़ाइल आकार द्वारा ls कमांड द्वारा जेनरेट की गई फ़ाइल सूची का आउटपुट, सबसे बड़ी फ़ाइलों से शुरू होता है। -n ऑपरेटर वर्णमाला के बजाय संख्यात्मक सॉर्टिंग निर्दिष्ट करता है।