সন্নিবেশ বা মোছা ছাড়াই দুটি ফাইল কঠোরভাবে লাইন বাই লাইন তুলনা করুন


14

আমার কাছে দুটি ফাইল রয়েছে যা মূলত একটি হেক্স ফর্ম্যাটে মেমরি ডাম্প ধারণ করে। এই মুহুর্তে আমি ফাইলগুলি আলাদা কিনা এবং কোথায় পার্থক্য রয়েছে তা দেখতে ডিফ ব্যবহার করি। তবে, পার্থক্যের সঠিক অবস্থান (অর্থাত মেমরি ঠিকানা) নির্ধারণ করার চেষ্টা করার সময় এটি বিভ্রান্তিকর হতে পারে। পাশাপাশি দুটি ফাইল দুটি পাশাপাশি দেখানো নীচের উদাহরণটি বিবেচনা করুন।

file1:       file2:

0001    |    0001
ABCD    |    FFFF
1234    |    ABCD
FFFF    |    1234

diff -uদুটি ফাইলের মধ্যে 3 লাইন (মেমরি অবস্থান) পরিবর্তিত হলেও এখন একটি সন্নিবেশ এবং একটি মুছে ফেলা প্রদর্শিত হবে:

 0001
+FFFF
 ABCD
 1234
-FFFF

দুটি ফাইলের তুলনা করার কি সহজ উপায় আছে যে প্রতিটি লাইনটি অন্য ফাইলটিতে কেবল একই লাইন (লাইন সংখ্যার শর্তে) এর সাথে তুলনা করা হয়? তাই এই উদাহরণে সে বিষয়ে রিপোর্ট করা উচিত যে শেষ 3 লাইন, পরিবর্তিত হয়েছে থেকে পরিবর্তিত লাইন বরাবর file1এবং file2। আউটপুটটি আলাদা-শৈলীতে থাকতে হবে না, তবে এটি রঙিন হতে পারলে এটি দুর্দান্ত হবে (এই মুহুর্তে আমি diff -uআউটপুটটি এমন রঙিন করে রঙ করে sedযাতে সহজেই মানিয়ে নেওয়া যায়)।

উত্তর:


19

এটি একটি পদ্ধতির হতে পারে:

diff <(nl file1) <(nl file2)

সঙ্গে nlসংখ্যা লাইন যে diffলাইন স্বীকার পাতিপাতি।


3
এটি দুর্দান্ত, আমি এনএল প্রোগ্রামটি জানতাম না। এই ইউনিক্স সরঞ্জামগুলি সত্যই কার্যকর, তবে তাদের অনেকগুলি রয়েছে।
ফ্রিটজ

1
আমি কেবল এটি চেষ্টা করেছি এবং দুর্ভাগ্যক্রমে আমি যা পাই তা হ'ল: প্রথম ফাইলের প্রতিটি লাইন, দ্বিতীয় ফাইলের প্রতিটি লাইন অনুসরণ করে ... ফাইল 1 থেকে 1 পংক্তির পরিবর্তে, ফাইল দুটি থেকে 1 লাইন, তার পরে লাইন 2 এক ফাইল থেকে, তারপরে ফাইল 2 থেকে লাইন 2 ...
মাইকেল হিউসন

@ মিশেলহিউসন আপনার দুটি ফাইলের কোনও মিল নেই বলে মনে হচ্ছে। সেক্ষেত্রে, এটি ঠিক কিভাবে diffকাজ করে। আপনি জিআই প্রোগ্রামটি চেষ্টা করতে পারেন meldযা দুটি ফাইল পাশাপাশি দেখায়। হিসাবে রয়েছেmeld <(nl file1) <(nl file2)
ফ্রিটজ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.