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


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.