मैं अद्वितीय रेखाएँ कैसे ढूँढ सकता हूँ और किसी फ़ाइल से सभी डुप्लिकेट निकाल सकता हूँ? मेरी इनपुट फ़ाइल है
1
1
2
3
5
5
7
7
मैं चाहूंगा कि परिणाम:
2
3
sort file | uniqकाम नहीं करेगा 1 बार सभी मान दिखाएगा
मैं अद्वितीय रेखाएँ कैसे ढूँढ सकता हूँ और किसी फ़ाइल से सभी डुप्लिकेट निकाल सकता हूँ? मेरी इनपुट फ़ाइल है
1
1
2
3
5
5
7
7
मैं चाहूंगा कि परिणाम:
2
3
sort file | uniqकाम नहीं करेगा 1 बार सभी मान दिखाएगा
sort file | uniqसभी मूल्यों को 1 बार दिखाता है क्योंकि यह तुरंत उस रेखा को प्रिंट करता है जो पहली बार सामना करती है, और बाद में होने वाले मुकाबलों के लिए, यह उन्हें छोड़ देता है।
जवाबों:
uniq आपके लिए आवश्यक विकल्प है:
-u, --unique
only print unique lines
$ cat file.txt
1
1
2
3
5
5
7
7
$ uniq -u file.txt
2
3
निम्नानुसार उपयोग करें:
sort < filea | uniq > fileb
uniq -u filea > fileb
sort<filea.txt | uniq>fileb.txt:। हो सकता है कि आपने एक्सटेंशन छोड़ दिया हो। मैं एक मैक ओएस एक्स का उपयोग कर रहा हूं। आपको filea.txtfileb.txt
sortऔर uniqजब आप sort -u file -o fileक्या कर रहे हैं तो पाइप करने की बात यह है कि आप जो कर रहे हैं वह डुप्लिकेट मानों को दूर कर रहा है यानी आपके ओपी में केवल अद्वितीय लाइनें हैं जो है और जो फ़ाइल एक्सटेंशन द्वारा हासिल की गई है, filebउसमें कुछ भी नहीं है इसके साथ, आपका जवाब गलत है। 1,2,3,5,72,3uniq -u file
तुम भी बाहर अनूठा मूल्य "फाइल" में का उपयोग करके प्रिंट कर सकता है catआदेश के पाइप से sortऔरuniq
cat file | sort | uniq -u
uniq -u मुझे पागल कर रहा है क्योंकि यह काम नहीं करता था।
तो इसके बजाय, यदि आपके पास अजगर है (सबसे लिनक्स डिस्ट्रोस और सर्वर पहले से ही है):
#Python
#Assuming file has data on different lines
#Otherwise fix split() accordingly.
uniqueData = []
fileData = open('notUnique.txt').read().split('\n')
for i in fileData:
if i.strip()!='':
uniqueData.append(i)
print uniqueData
###Another option (less keystrokes):
set(open('notUnique.txt').read().split('\n'))
सिर्फ FYI करें, uniq मैन पेज से:
"ध्यान दें: 'uniq' तब तक बार-बार लाइनों का पता नहीं लगाता है जब तक कि वे आसन्न न हों। आप पहले इनपुट को सॉर्ट करना चाहते हैं, या 'यूनीक' के बिना 'सॉर्ट-यू' का उपयोग कर सकते हैं। इसके अलावा, 'LC_CLLATE' द्वारा निर्दिष्ट नियमों का तुलनात्मक सम्मान करते हैं।"
सही तरीकों में से एक, के साथ आह्वान करने के लिए: # सॉर्ट nonUnique.txt | uniq
$ cat x
3
1
2
2
2
3
1
3
$ uniq x
3
1
2
3
1
3
$ uniq -u x
3
1
3
1
3
$ sort x | uniq
1
2
3
uniq -u < file नौकरी करेंगे।
uniqयदि आप फ़ाइल को ठीक कर रहे हैं तो उसे ठीक किया जाना चाहिए / यदि आप किसी ऐसे कारण से फ़ाइल को सॉर्ट नहीं कर सकते, जिसका आप उपयोग कर सकते हैं awk:
awk '{a[$0]++}END{for(i in a)if(a[i]<2)print i}'
sort -d "file name" | uniq -u
यह मेरे लिए एक समान काम करता है। यदि यह व्यवस्था नहीं है तो इसका उपयोग करें यदि आप इसे व्यवस्थित करते हैं तो आप इसे हटा सकते हैं
मुझे यह आसान लगता है।
sort -u input_filename > output_filename
-u अद्वितीय के लिए खड़ा है।
यह पहला प्रयास था
skilla:~# uniq -u all.sorted
76679787
76679787
76794979
76794979
76869286
76869286
......
एक बिल्ली करने के बाद-सभी
skilla:~# cat -e all.sorted
$
76679787$
76679787 $
76701427$
76701427$
76794979$
76794979 $
76869286$
76869286 $
प्रत्येक दूसरी पंक्ति में एक अनुगामी स्थान होता है :( सभी अनुगामी स्थानों को हटाने के बाद यह काम करता है!
धन्यवाद
sort file | uniq -uआपके लिए सांत्वना देने के लिए आउटपुट देगा।