দীর্ঘ এক লাইনের ফাইলটিতে ডিফ ব্যবহার করে


25

আমার কাছে একটি ফাইল রয়েছে যার কেবল একটি লাইন রয়েছে। এর আকার প্রায় 20,000 বাইট।

ফাইলটি পরিবর্তন করা হয়েছে, এবং আমি কোথায় জানতে চেয়েছিলাম।

আমি ভেবেছিলাম ডিফ ব্যবহার করে, তবে এটি আমাকে সম্পূর্ণ লাইনটি দেখায়, কারণ এটি লাইনটির সাথে পার্থক্য রাখে - তবে এই ক্ষেত্রে এটি ফাইলের একমাত্র লাইন যেখানে পার্থক্য রয়েছে।

তাই আমি দেখতে চেয়েছিলাম কি পার্থক্য আছে।

কোন পরামর্শ?


3
কথায় কথায় আলাদা? manpages.ubuntu.com/manpages/lucid/man1/wdiff.1.html
ভেঙ্কট এইচ

2
আপনি কি এফএমটি-তে পাইপিংয়ের চেষ্টা করেছেন (যদি আপনি অবশ্যই লিনাক্স ব্যবহার করে থাকেন) আপনি "fmt -w 50 long.txt | diff" করতে পারেন
l1zard

উত্তর:


13

ধরে নেওয়া যায় যে অনেকগুলি শ্বেত স্পেস রয়েছে, যেমন সাধারণ পাঠ্যের মতো, আপনি ফাইলটি শব্দ দ্বারা বিভক্ত করতে পারেন এবং এটি একটি সাধারণ ডিফ সরঞ্জামের সাথে তুলনা করতে পারেন, উদাহরণস্বরূপ, মেল্ড:

tr -s ' ' '\n' < file1.txt > file1.txt.split
tr -s ' ' '\n' < file2.txt > file2.txt.split
meld file1.txt.split file2.txt.split

2
আমার কাছে সবচেয়ে সহজ সমাধান বলে মনে হচ্ছে। নিজের মধ্যে বিচ্ছিন্ন সমস্যাটি তুচ্ছ, তবে বেশিরভাগ সরঞ্জাম (কেবল ডিফ-সরঞ্জামগুলি নয়) লম্বা লাইন পরিচালনা করতে পারে না, সুতরাং সমস্যাটি ডাব্লু / লম্বা লাইনগুলি নয় বরং পৃথক করেই ডিল করছে।
p1100i

4

আমি একটি পৃথক খুঁজে পাই যা আন্তঃরেখার পার্থক্য করে। আমি ইউএনআইএক্স-এক্সএক্সডিডিফ ব্যবহার করি । আমি মনে করি উইনমার্গ উইন্ডোজে আন্তঃ-লাইন পার্থক্য করে।

অন্যান্য উত্তরগুলিও ভাল: ডাব্লুডিফ, বা খণ্ডগুলিতে বিভক্ত হওয়া - কোনও পাইপ বা কমা দিয়ে ডেটা বিস্মৃত করা হলে খণ্ড গণ্ডিগুলি নির্ধারণ করা সহজ।


1
অবগতির জন্য, xxdiff segfaults যদি লাইন 32768 অক্ষর চেয়ে দীর্ঘতর হয় ...
ValarDohaeris

3

যদি এটি এককালীন সমস্যা হয় তবে আমি \nপ্রতি 50 টি অক্ষর sertedোকানো ফাইলগুলির সাথে ফাইলগুলির অনুলিপি তৈরি করব , তারপরে সেই অনুলিপিগুলি আলাদা করুন। (আমি 50 টি বেছে নিয়েছি কারণ এটি মূল ফাইলগুলিতে অফসেট বাইটে আলাদা লাইন নম্বর থেকে গণিতকে সহজ করে তোলে তবে আমি যা পেয়েছি তার উপর ভিত্তি করে এটি উপরে / ডাউনকে সামঞ্জস্য করতে পারে))

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