একটি বৃহত মাল্টি-জিবি পাঠ্য ফাইলটিতে নকল লাইনগুলি কীভাবে সরাবেন?


16

আমার প্রশ্নটি এই প্রশ্নের অনুরূপ তবে কয়েকটি পৃথক বাধা সহ:

  • আমার কাছে একটি বড় \nসীমিত শব্দ-তালিকা রয়েছে - প্রতি লাইনে একটি শব্দ। ফাইলগুলির আকার 2GB থেকে 10GB পর্যন্ত বৃহত্তর।
  • আমার যে কোনও সদৃশ লাইন সরানো দরকার।
  • প্রক্রিয়াটি ডুপ্লিকেটগুলি অপসারণের সময় তালিকাকে সাজিয়ে তুলতে পারে তবে প্রয়োজনীয় নয়।
  • নতুন অনন্য ওয়ার্ডলিস্ট আউটপুট আটকানোর জন্য পার্টিশনে পর্যাপ্ত জায়গা রয়েছে।

আমি এই দুটি পদ্ধতিই চেষ্টা করেছি তবে এগুলি উভয়ই মেমরির ত্রুটির সাথে ব্যর্থ হয়।

sort -u wordlist.lst > wordlist_unique.lst
awk '!seen[$0]++' wordlist.lst > wordlist_unique.lst
awk: (FILENAME=wordlist.lst FNR=43601815) fatal: assoc_lookup: bucket-ahname_str: can't allocate 10 bytes of memory (Cannot allocate memory)

আমি অন্য কোন পদ্ধতির চেষ্টা করতে পারি?


উত্তর:


18

আউটপুট পুনর্নির্দেশের পরিবর্তে -o/ --output=FILEবিকল্পের সাথে সাজানোর চেষ্টা করুন । আপনি / এর buffer-sizeসাথে সেটিংটিও চেষ্টা করতে পারেন । এছাড়াও, চেষ্টা করুন / । এবং ম্যান পৃষ্ঠাটি পড়ুন, এটি আমার দেওয়া সমস্ত তথ্য সরবরাহ করে।-S--buffer-size=SIZE-s--stable

আপনি যে পুরো কমান্ডটি ব্যবহার করতে পারেন তা আপনি যা করছেন তার জন্য কাজ করতে পারে:

sort -us -o wordlist_unique.lst wordlist.lst

আপনি নিম্নলিখিত URL টি পড়তে চাইতে পারেন:

http://www.gnu.org/s/coreutils/manual/html_node/sort-invocation.html

এটি ম্যান পেজের চেয়ে আরও ভালভাবে সাজানোর ব্যাখ্যা দেয়।


পরামর্শের জন্য ধন্যবাদ, দুর্ভাগ্যক্রমে - আউটপুট ব্যবহার করা এখনও মেমরি ত্রুটির আউট ঠিক করে না। এখনও চালিয়ে যাচ্ছি sort: write failed: /root/tmp/sortVxscLn: No space left on device। সমস্যাটি কিছুটা বিরক্তিকর যে এটি এখনই ব্যর্থ হয় না। দেখে মনে হচ্ছে এটির ত্রুটি বের হওয়ার আগে আপনার মেমরিটি ক্লান্ত হয়ে যাওয়ার জন্য অপেক্ষা করতে হবে।
গ্রেটওয়ल्फ

8
@ ভিক্টর টি .: এটি মেমরির ত্রুটির বাইরে নয়, তবে ডিস্ক স্পেসের ত্রুটির বাইরে। / ডেটা আপনার ডেটা আলাদা ফাইল সিস্টেমের মূল? যদি তা sortহয় তবে আরও মুক্ত স্থান সহ একটি ফাইল সিস্টেম ব্যবহার করতে -T / - অস্থায়ী-ডিরেক্টরি বিকল্পটি ব্যবহার করুন।
ক্যামহ

@ ক্যামহ ধন্যবাদ যে কৌশলটি করেছেন। বুঝতে পারিনি যে আপনি কোন মধ্যবর্তী বাফারটি ব্যবহার করবেন তা নির্দিষ্ট করে দিতে পারেন।
গ্রেটওয়ल्फ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.