मेरे पास एक टेक्स्ट फ़ाइल है जिसमें प्रविष्टियों की एक लंबी सूची (प्रत्येक पंक्ति पर एक) शामिल है। इनमें से कुछ डुप्लिकेट हैं, और मैं जानना चाहता हूं कि यह संभव है (और यदि ऐसा है, तो कैसे) किसी भी डुप्लीकेट को हटाने के लिए। यदि संभव हो तो मुझे vi/vim के भीतर ऐसा करने में दिलचस्पी है।vi में डुप्लिकेट पंक्तियों को हटा रहा है?
उत्तर
आप अपनी फ़ाइल छँटाई के साथ ठीक कर रहे हैं, तो आप उपयोग कर सकते हैं:
:sort u
इस प्रयास करें:
:%s/^\(.*\)\n\1$/\1/
हालांकि इससे पहले कि आप कोशिश एक कॉपी बनाएं। यह अवांछित है।
दृश्य ऑनलाइन मोड (शिफ्ट + वी), तो :!uniq
में लाइनों का चयन करें। यह केवल डुप्लीकेट पकड़ लेगा जो एक के बाद एक आते हैं।
बस यह ध्यान देने के लिए केवल यूनिक प्रोग्राम स्थापित किए गए कंप्यूटर पर काम करेगा यानी लिनक्स, मैक, फ्रीब्स आदि – anteatersa
यह उन लोगों के लिए सबसे अच्छा जवाब होगा जिन्हें सॉर्टिंग की आवश्यकता नहीं है। और यदि आप विंडोज उपयोगकर्ता हैं, तो सिगविन या एमएसवाईएस को आजमाने का विचार करें। –
मैं !}uniq
का उपयोग करूंगा, लेकिन यह केवल तभी काम करता है जब कोई रिक्त रेखा न हो।
फ़ाइल उपयोग में प्रत्येक पंक्ति के लिए: :1,$!uniq
।
मैं ऊपर जवाब में से दो गठबंधन होगा: में मौजूद लाइनों की संख्या पर जांच करने के पहले और बाद में
go to head of file
sort the whole file
remove duplicate entries with uniq
1G
!Gsort
1G
!Guniq
यदि आप कितने डुप्लिकेट लाइनों को हटा दिया गया देखने में रुचि रखते थे, का उपयोग नियंत्रण-जी अपने बफर।
sort -u == sort | uniq –
''uniq' को आंतरिक या बाहरी कमांड के रूप में पहचाना नहीं गया है, ऑपरेट करने योग्य प्रोग्राम या बैच फ़ाइल। – hippietrail
विमल में यूनिक को कैसे कार्यान्वित किया जा सकता है, इस बारे में plugin I'm maintaining में यूनिक की खोज करें। आप इसे लागू करने के विभिन्न तरीकों को देखेंगे जो कि विम मेलिंग-सूची पर दिए गए थे।
अन्यथा, :sort u
वास्तव में जाने का तरीका है।
g/^\(.*\)$\n\1/d
विंडोज़ पर मेरे लिए काम करता है। हालांकि लाइनों को पहले क्रमबद्ध किया जाना चाहिए।
यह एक पंक्ति के बाद एक पंक्ति को हटा देगा जो उपसर्ग है: 'aaaa'' के बाद 'aaaabb'' aaaa हटा देगा गलती से – hippietrail
कमांड लाइन से बस करो:
sort file | uniq > file.new
यह एक विशाल फ़ाइल के लिए मेरे लिए बहुत आसान था। धन्यवाद! – Rafid
काम के स्वीकार्य उत्तर को प्राप्त नहीं किया जा सका, क्योंकि 'मेरी तरह से' मेरी बड़ी फाइल पर लटका हुआ था। यह बहुत जल्दी और पूरी तरह से काम किया। धन्यवाद! – Tgsmith61591
''uniq' को आंतरिक या बाहरी कमांड के रूप में पहचाना नहीं गया है, ऑपरेट करने योग्य प्रोग्राम या बैच फ़ाइल। – hippietrail
:%s/^\(.*\)\(\n\1\)\+$/\1/gec
या
:%s/^\(.*\)\(\n\1\)\+$/\1/ge
यह आपके लिए मेरा जवाब है, यह कई डुप्लिकेट लाइनों को हटा सकते हैं और केवल एक को दूर नहीं रख!
awk '!x[$0]++' yourfile.txt
यदि आप आदेश को संरक्षित करना चाहते हैं (यानी, सॉर्टिंग स्वीकार्य नहीं है)। इसे vim से आमंत्रित करने के लिए, :!
का उपयोग किया जा सकता है।
यह सुंदर है! सॉर्ट करने की आवश्यकता नहीं है * बिल्कुल * जो मैं खोज रहा था! – Cometsong
- 1. सूची में डुप्लिकेट ऑब्जेक्ट्स को हटा रहा है (सी #)
- 2. बहुगुणित फ़ील्ड में सौर डुप्लिकेट मानों को हटा रहा है
- 3. पायथन: डुप्लिकेट सीएसवी प्रविष्टियों को हटा रहा है
- 4. सूची से डुप्लिकेट स्ट्रिंग को हटा रहा है (.NET 2.0!)
- 5. डुप्लिकेट पंक्तियों को समेकित करें
- 6. VI
- 7. रूबी में समान वस्तुओं को हटा रहा है?
- 8. ग्रुप बाय डुप्लिकेट को हटा नहीं देता
- 9. vi
- 10. एक अल्पविराम से अलग सूची में डुप्लिकेट को रीगेक्स के साथ हटा रहा है?
- 11. SQLite डेटाबेस से डुप्लिकेट पंक्तियों को हटाने
- 12. मैं पंक्तियों को कैसे हटा सकता हूं?
- 13. एनएचबेर्नेट, "डिस्प्ले डिस्प्ले पर", कैस्केड संबंधित तालिकाओं में पंक्तियों को हटा रहा है?
- 14. स्ट्रिंग से सबस्ट्रिंग को हटा रहा है?
- 15. ActiveAdmin संसाधनों को हटा रहा है
- 16. phpMyAdmin एक सूचकांक को हटा रहा है
- 17. jQuery Accordion आइटम को हटा रहा है
- 18. ऑर्डर संरक्षित करते समय अस्थिर तत्व युक्त पाइथन सूची से डुप्लिकेट तत्वों को हटा रहा है?
- 19. स्ट्रिंग से संख्याओं को हटा रहा है?
- 20. गिट रिपोजिटरी गिटोलाइट को हटा रहा है?
- 21. mysql_real_escape_string पूरे स्ट्रिंग को हटा रहा है
- 22. अस्थायी ASP.Net फ़ाइलों को हटा रहा है
- 23. jquery.ValidationEngine - त्रुटि पॉपअप को हटा रहा है
- 24. विंडो सीमा को हटा रहा है?
- 25. vi
- 26. मैं MySQL में रिक्त पंक्तियों को कैसे हटा सकता हूं?
- 27. मैं वाईआई में पंक्तियों को कैसे हटा सकता हूं?
- 28. VI
- 29. vi
- 30. vi
http://stackoverflow.com/questions/746689/unix-tool-to-remove-duplicate-lines-from-a-file –
का डुप्लिकेट जैसा दिखता है यह 1 वर्ष पुराना है; वह 10 महीने है। तो, चारों ओर दूसरी तरफ। – Sydius
@ साइडियस सर्वसम्मति अब अपवोट गिनती को प्राथमिकता देना है (जिसमें आपके पास भी अधिक है): http://meta.stackexchange.com/questions/147643/should-i-vote-to-close-a-duplicate-question-even यद्यपि-यह-बहुत-नया-और-हा है और वे डुप्लिकेट नहीं हैं, उनमें से कोई भी विम का उल्लेख नहीं करता है :-) –