মাইনের একটি বিশাল (2 GiB অবধি) পাঠ্য ফাইলটিতে এতে প্রতিটি লাইনটির প্রায় 100 টি সঠিক নকল রয়েছে (ফাইলটি CSV- এর মতো ডেটা টেবিল হিসাবে আমার ক্ষেত্রে অকেজো)।
আমার যা প্রয়োজন তা হল মূল ক্রম ক্রম বজায় রাখার সময় সমস্ত পুনরাবৃত্তি (মুছে ফেলা তবে এটি একটি তাত্পর্যপূর্ণ পারফরম্যান্স বৃদ্ধির জন্য উত্সর্গ করা যেতে পারে)। ফলাফল প্রতিটি লাইন অনন্য হতে হবে। যদি 100 টি সমান লাইন থাকে (সাধারণত ডুপ্লিকেটগুলি ফাইল জুড়ে ছড়িয়ে থাকে এবং প্রতিবেশী হবে না) তবে সেখানে কেবল এক ধরনের বাম থাকতে হবে।
আমি এটি বাস্তবায়নের জন্য স্কালায় একটি প্রোগ্রাম লিখেছি (এটি জাভা বিবেচনা করুন) তবে সম্ভবত আরও দ্রুত সি-লিখিত নেটিভ সরঞ্জামগুলি এটি করতে সক্ষম?
আপডেট: awk '!seen[$0]++' filename
সমাধানটি আমার পক্ষে ঠিক ঠিক কাজ করছে যতক্ষণ না ফাইলগুলি 2 জিআইবি বা তার চেয়ে কম ছোট ছিল তবে এখন আমি 8 গিগাবাইট ফাইলটি পরিষ্কার করতে চাইলে এটি আর কাজ করে না। মনে হয় 4 জিআইবি র্যামযুক্ত একটি ম্যাক এবং 4 জিবিবি র্যাম এবং 6 জিআইবি স্বাপের সাথে একটি 64-বিট উইন্ডোজ 7 পিসি অনন্তর গ্রহণ করছে memory এবং লিনাক্সে 4 জিবি র্যামের এই অভিজ্ঞতাটি দিয়ে চেষ্টা করার বিষয়ে আমি উত্সাহী বোধ করি না।
sort -u
সম্ভবত দ্রুত হবে।