কোনও ফাইলের মধ্যে পাঠ্যের নকল ব্লক সনাক্ত করুন


10

কোনও ফাইলের মধ্যে ডুপ্লিকেট বা পাঠ্যের নকল ব্লকের কাছাকাছি সনাক্ত করার কোনও সুবিধাজনক উপায় আছে কি?

কোড নকল সনাক্তকরণের জন্য আমি এটি ব্যবহার করতে চাই। দেখে মনে হচ্ছে এই দক্ষতার সাথে বিশেষ প্রোগ্রাম রয়েছে তবে আমি এতে জড়িত হতে চাইছি না।

আমি আশা করছি ডিফের অনুরূপ একটি সরঞ্জাম রয়েছে যা "একটি ফাইলের মধ্যে" পার্থক্য করতে পারে। এমনকি আরও ভাল একটি একক ফাইল vimdiff মধ্যে হতে পারে।


কি নেই vimdiffআপনার জন্য এখানে প্রশ্ন করতে পারবেন আপনার
slm

কারণ এখানে কেবল একটি ফাইল জড়িত। আমি জানি না কীভাবে একই ফাইলের পৃথক অংশে ভিমডিফ ব্যবহার করতে হয়।
প্রেক্সোলিটিক

আমি দেখছি, আমি মিস করেছি যে এটি একটি একক ফাইল।
slm

উত্তর:


13

যদি লাইন-বাই-লাইন তুলনা করা গ্রহণযোগ্য হয়, তবে নিম্নলিখিতগুলিতে কোন লাইনে ফাইলটিতে নকল করা হয়েছে textএবং প্রত্যেকটি কতবার প্রদর্শিত হবে তা নিম্নলিখিতটি জানিয়ে দেবে :

sort text | uniq -c | grep -vE '^\s*1 '

উদাহরণ হিসাবে,

$ cat text
alpha
beta
alpha
gamma
alpha
beta
$ sort text | uniq -c | grep -vE '^\s*1 '
      3 alpha
      2 beta

সাধারণ ইউনিক্স সরঞ্জাম ব্যবহার করে, ইনপুট পরীক্ষার বিন্যাসটি অনুচ্ছেদ-অনুসারে-অনুচ্ছেদে বা বাক্য-বাক্য বাক্য তুলনার তুলনায়, ইনপুট পরীক্ষার বিন্যাসটি খুব জটিল নয় বলে ধরে নেওয়া যায়।

পুনরাবৃত্তি অনুচ্ছেদগুলি সন্ধান করা

মনে করুন যে আমাদের ফাইলটিতে textরয়েছে:

This is a paragraph.

This is another
paragraph

This is
a paragraph.

Last sentence.

নিম্নলিখিত অনুচ্ছেদে চিহ্নিত করা হয়েছে যে কোন অনুচ্ছেদে একাধিকবার প্রদর্শিত হবে:

$ awk -v RS=""  '{gsub(/\n/," "); print}' text | sort | uniq -c | grep -vE '^\s*1 '
      2 This is a paragraph.

এটি awkপাঠ্যগুলিকে অনুচ্ছেদে বিভক্ত করার জন্য ব্যবহার করে (ফাঁকা রেখার দ্বারা বর্ণিত), নিউলাইনগুলিকে স্পেসে রূপান্তরিত করে এবং তারপরে অনুচ্ছেদে গণনা করার জন্য ইউনিকের জন্য অনুচ্ছেদে প্রতি এক লাইন আউটপুট পাস করে।

উপরেরটি জিএনইউ দিয়ে পরীক্ষা করা হয়েছিল awk। অন্যান্যগুলির awkজন্য, অনুচ্ছেদ (রেকর্ড) সীমানা হিসাবে ফাঁকা রেখাগুলি সংজ্ঞায়নের পদ্ধতি পৃথক হতে পারে।


1
আমি একসাথে একাধিক লাইনের জন্য উত্সাহ দিতে চাই।
প্রেক্সোলাইটিক

1
অনুচ্ছেদগুলির জন্য @ প্রেক্সিওলিটিক আপডেট হয়েছে।
1024
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.