दूसरे कॉलम के अनुसार लिनक्स शेल सॉर्ट फाइल?


88

मेरे पास इस तरह की एक फाइल है:

FirstName, FamilyName, Address, PhoneNumber

मैं इसे FamilyName द्वारा कैसे सॉर्ट कर सकता हूं?


कौन सा ओएस और कमांड प्रोसेसर?
प्रीत संघ

जवाबों:


153

यदि यह यूनिक्स है:

sort -k 2 file.txt

आप -kएक से अधिक स्तंभों पर सॉर्ट करने के लिए कई झंडे का उपयोग कर सकते हैं । उदाहरण के लिए, परिवार का नाम छाँटने के लिए फिर टाई ब्रेकर के रूप में पहला नाम:

sort -k 2,2 -k 1,1 file.txt

"मैन सॉर्ट" से प्रासंगिक विकल्प:

-k, --key = POS1 [, POS2]

POS1 पर एक कुंजी शुरू करें, इसे POS2 पर समाप्त करें (मूल 1)

POS F [.C] [OPTS] है, जहाँ F क्षेत्र संख्या और C क्षेत्र में वर्ण स्थिति है। ओपीटीएस एक या एक से अधिक अक्षरों का आदेश देने वाला विकल्प है, जो उस कुंजी के लिए वैश्विक ऑर्डरिंग विकल्पों को ओवरराइड करता है। यदि कोई कुंजी नहीं दी गई है, तो कुंजी के रूप में पूरी पंक्ति का उपयोग करें।

-t, --field-विभाजक = SEP

रिक्त स्थान को खाली करने के बजाय SEP का उपयोग करें


2
--field-separator=','यदि आप "प्रथम नाम" जैसे "बिली बॉब" या जो भी ... के लिए मानों में डेटा प्रविष्टि ऑपरेटर प्रकार हो सकता है, तो उपयोग करने के लिए थोड़ा सावधान रहें, यदि आप इसके खिलाफ गार्ड नहीं करते हैं तो आसानी से आपके डेटा में स्थान प्राप्त कर सकते हैं, लेकिन अल्पविराम अपेक्षाकृत संभावना नहीं है।
टोनी डेलारॉय

1
उन क्षेत्रों में कॉमा की बहुत संभावना है, जैसे "स्मिथ, जूनियर" या "मैकडॉवेल, सीनियर" या "डॉ। जॉन" या "न्यूयॉर्क, एनवाई"
jbnunn

2
ध्यान दें कि यदि कॉलम नेत्रहीन रूप से संरेखित हैं, अर्थात प्रत्येक फ़ील्ड के बीच में निरंतर स्थान नहीं है, तो आपको -bविकल्प का उपयोग करना चाहिए । ऐसा इसलिए है क्योंकि sortवास्तव में यह विचार किया जा रहा है कि छाँटने के लिए स्ट्रिंग कॉमा के ठीक बाद शुरू होती है, न कि कॉलम के पहले अक्षर से। साथ ही, आपको LC_ALL=Cलोकेल के कारण किसी भी दुष्प्रभाव से बचने के लिए कमांड के साथ उपसर्ग करने की आवश्यकता हो सकती है , जो कि एक सरल ASCII फ़ाइल पर भी हो सकता है।
कैलांडो

@calandoa पर -b( --ignore-leading-blanks) भाग के लिए धन्यवाद । थोड़ा स्पष्ट करने के लिए: echo -e 'aa<SPACE>a\na<SPACE><SPACE>b' | sort -k2देता है a<SPACE><SPACE>bपहले (पहले के बाद दूसरे स्तंभ शुरू होता है non-blank to blank transition, और <SPACE><SPACE>bइससे पहले कि है <SPACE>a), लेकिन साथ -bयह देता है aa<SPACE>aके रूप में उम्मीद ( aसे पहले है b)।
किरिल ब्यूलगिन

7

केवल दूसरे फ़ील्ड के आधार पर सॉर्ट करने के लिए (इस प्रकार जहां दूसरे फ़ील्ड्स मेल खाते हैं, मैच वाली वे लाइनें उस क्रम में रहती हैं, जो अन्य फ़ील्ड्स को सॉर्ट किए बिना मूल में हैं):

sort -k 2,2 -s orig_file > sorted_file

3

एफडब्ल्यूआईडब्ल्यू, यहां दिखाया गया है कि कौन सी प्रक्रियाएं सबसे अधिक पुण्य स्मृति का उपयोग कर रही हैं।

memstat | sort -k 1 -t':' -g -r | less

सॉर्ट विकल्प पहले कॉलम पर सेट होते हैं, का उपयोग करते हुए: कॉलम सेपरेटर, संख्यात्मक प्रकार और रिवर्स में सॉर्ट करें।


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