2010-02-13 7 views
8

'मैन यूनिक' दस्तावेज -f = N और -s = N विकल्प जो लाइनों की तुलना करते समय क्रमशः पहले एन फ़ील्ड/अक्षरों को छोड़ते हैं, लेकिन आप कैसे बल देंगे अंतिम एन फ़ील्ड/वर्णों को छोड़ने के लिए uniq?uniq - पंक्तियों की तुलना करते समय पिछले एन वर्ण/फ़ील्ड को छोड़कर

उत्तर

10

आप पहली बार अपने डेटा को सॉर्ट करने आप uniq

sort file | rev | uniq -f 10 | rev 
+0

यूनिक लगातार समान रेखा को हटा देता है जो निश्चित रूप से उपयोगी हो सकता है। –

+0

उह ... मुझे लगता है कि यह मानता है कि रेखाएं एक ही लंबाई हैं ... – Michael

9

rev $ filename | सॉर्ट | uniq -f = एन | फिरना

+1

किसी को भी ध्यान देता है कि क्यों इस व्यवहार एक कमांड लाइन स्विच/विकल्प के रूप में uniq में शामिल नहीं किया गया है के रूप में एक तर्क के साथ आने के लिए? – Juliusz

+1

गड़बड़ चीजों को सॉर्ट करने से पहले उलट रहा है, क्योंकि आप उस क्षेत्र की उल्टा सामग्री (जैसे) को अनदेखा करना चाहते हैं (और आपकी बाकी पंक्तियों की विपरीत सामग्री) ... सॉर्ट फ़ाइल | rev | uniq -f = एन | स्वीकृत उत्तर में संकेत के रूप में rev' जाने का रास्ता है। बिना किसी प्रकार के – trs

12

उपयोग करने के लिए आपको सबसे पहले छँटाई और फिर खेतों आप छँटाई कर रहे हैं में से प्रत्येक के अद्वितीय संयोजन के लिए केवल एक लाइन रखने की कार्यक्षमता चाहते हैं चाहते हैं की आवश्यकता होगी चालू, आप अकेले यूनिक्स उपयोगिता प्रकार के साथ कर सकते हैं।

उदाहरण के लिए, निम्न फ़ाइल नाम some_data

a;c;4 
a;b;9 
a;b;6 

हम पहले और दूसरे क्षेत्र द्वारा क्रमबद्ध करना चाहते हैं पर विचार, और तीसरे क्षेत्र अकेला छोड़ दें, तो हम इस तरह एक स्थिर तरह करते हैं,:

$ sort -k1,1 -k2,2 -t';' --stable some_data 

जो

a;b;9 
a;b;6 
a;c;4 

देता है अब कहते हैं कि हम करना चाहते हैं पहले और दूसरे कॉलम के केवल अद्वितीय संयोजन रखें। तो फिर हम ऐसा चाहते हैं:

$ sort -k1,1 -k2,2 -t';' --stable --unique some_data 

जो

a;b;9 
a;c;4 
+0

यह वही है जो मैं चाहता था, असल में, क्योंकि यूनिक की तुलना में किसी क्षेत्र के रूप में किस तरह की गणना पर बेहतर नियंत्रण होता है। धन्यवाद! –

संबंधित मुद्दे