ডিফ রিপোর্টগুলি পার্থক্য করে তবে উভয় লাইনই একই


55

আমি 2 টি ফাইল এফ-এডি করেছি এবং পেয়েছি

1c1
< 1
---
> 1

দুটি ফাইলই কেবল "1" রয়েছে। এটি কীভাবে আলাদা?


উভয় ফাইলের বিষয়বস্তু পোস্ট করুন দয়া করে;)
রিনজউইন্ড

5
আপনি যদি ডিফ ব্যবহার করছেন তবে -uবিকল্পটি আরও মানব-পঠনযোগ্য হতে পারে।
লেকেনস্টেইন

@ রিনজুইন্ড, উভয় ফাইলের মধ্যে কেবল 1 টেক্সট রয়েছে তবে আপনি আরও দেখতে চাইলে পেস্টবিন.
com

দুঃখিত। আমি যখন এটি করি না। কিছু আলাদা থাকতে হবে। একটি করুন cp 1 2(2 ওভাররাইট 2) এবং তারপরে আপনি 100% বি নিশ্চিত হতে পারেন যে সেগুলি একই;)
রিনজুইন্ড

2
vimdiff file1 file2? : ডি
dylnmc

উত্তর:


68

1 ম লাইন: aযুক্ত, dমুছে ফেলা এবং cপরিবর্তিত জন্য দাঁড়িয়েছে । মূল ফাইলের লাইন নম্বরগুলি এই বর্ণগুলির আগে উপস্থিত হয় এবং পরিবর্তিত ফাইলের অক্ষরের পরে উপস্থিত হয়।

২ য় লাইন: লাইনটি <ফাইল 1 থেকে এবং ফাইল 2 থেকে পৃথক।

তৃতীয় লাইন একটি বিভাজক।

চতুর্থ লাইন: লাইনটি >ফাইল 2 থেকে এবং ফাইল 1 থেকে পৃথক।

(আপনি যদি কখনও দেখেন =তবে এর অর্থ উভয় ফাইলে লাইন একই রয়েছে)

এবং আপনার সমস্যাটি হোয়াইট স্পেস বা অন্য মানবেতর পাঠযোগ্য অক্ষরগুলি হতে পারে: এগুলি একটি পার্থক্যকেও ট্রিগার করে।

আউটপুট ম্যানিপুলেট করার জন্য কিছু বিকল্প রয়েছে।

উদাহরণ:

rinzwind @ discworld: ~ $ আরও 1 
পরীক্ষা
test2 |
test3 নামক
rinzwind @ discworld: ~ আরও 2
পরীক্ষা
test2 |  
test3 নামক

প্রাসঙ্গিক বিন্যাস:

rinzwind @ discworld: ~ f diff -c 1 2
*** 1 2011-08-13 17: 05: 40.433966684 +0200
--- 2 2011-08-13 17: 11: 24.369966629 +0200
***************
*** 1,3 ****
  পরীক্ষা
! test2 |
  test3 নামক
--- 1,3 ----
  পরীক্ষা
! test2 |  
  test3 নামক

এ "!" দুটি ফাইলের সাথে মিলিত রেখার মধ্যে পরিবর্তনকে প্রতিনিধিত্ব করে। একটি "+" একটি লাইন যোগ করার প্রতিনিধিত্ব করে, যখন একটি ফাঁকা স্থান অপরিবর্তিত রেখাকে প্রতিনিধিত্ব করে। প্যাচের শুরুতে পুরো পথ এবং একটি সময় স্ট্যাম্প সহ ফাইলের তথ্য including প্রতিটি হুঙ্কের শুরুতে লাইন নম্বরগুলি ফাইলগুলিতে একই পরিবর্তনের জন্য আবেদন করে। তিনটি তারকাচিহ্নের সেটগুলির মধ্যে উপস্থিত একটি সংখ্যা পরিসীমা মূল ফাইলে প্রযোজ্য, যখন তিনটি ড্যাশের সেটগুলি নতুন ফাইলে প্রযোজ্য। কুঁড়ি রেঞ্জগুলি সংশ্লিষ্ট ফাইলটিতে শুরু এবং শেষের লাইন সংখ্যা নির্দিষ্ট করে।

ইউনিফাইড বিন্যাস সম্পর্কে লেকেনস্টেইনের মন্তব্যে সম্প্রসারণ:

rinzwind @ discworld: ~ f diff -u 1 2
--- 1 2011-08-13 17: 05: 40.433966684 +0200
+++ 2 2011-08-13 17: 11: 24.369966629 +0200
@@ -1,3 +1,3 @@
 পরীক্ষা
-test2
+ + test2 |  
 test3 নামক

মূল ফাইলটি "---" এর আগে এবং নতুন ফাইলটি "+++" এর আগে রয়েছে, প্রসঙ্গ বিন্যাসের মতো একই দুটি লাইন শিরোনাম দিয়ে ফর্ম্যাটটি শুরু হয়। এটি অনুসরণ করে এমন এক বা একাধিক পরিবর্তন হুঙ্ক রয়েছে যা ফাইলের মধ্যে লাইন পার্থক্য ধারণ করে। অপরিবর্তিত, প্রাসঙ্গিক লাইনগুলি একটি স্পেস অক্ষর দ্বারা পূর্বে হয়, সংযোজন লাইনগুলি পূর্বে চিহ্ন দ্বারা পূর্বে হয়, এবং মুছে ফেলা লাইনগুলি বিয়োগ চিহ্নের আগে হয়।

কিছু দরকারী বিকল্প:

-b সাদা জায়গার পরিমাণে পরিবর্তনগুলি উপেক্ষা করুন।

-w সমস্ত সাদা স্থান উপেক্ষা করুন।

-B সমস্ত ফাঁকা রেখা উপেক্ষা করুন।

-y 2 কলমে আউটপুট।


কোনও লুকানো অক্ষর আছে কিনা তা আমি কীভাবে পরীক্ষা করব? লুকিয়ে থাকা চরিত্রগুলিকে উপেক্ষা করার উপায় কি আছে (সম্ভবত কেবল নিউলাইন এবং ট্যাবগুলি বাদ দিয়ে?) আমি মনে করি বেশিরভাগ লুকানো চরিত্রগুলি দুর্ঘটনাজনক?
জিউ মেনগ

আমি কিছু দরকারী বিকল্প রেখেছি (এর থেকে অনুলিপি করা হয়েছে man diff)
রিনজউইন্ড

আমি-বি পতাকা ব্যবহার করে লক্ষ্য করি। হুম আমি
জিডিতে

@ জিউমেং od -x1zদুটি ফাইল চালনা করুন এবং odআউটপুট তুলনা করুন । এটি ফাইলগুলির মধ্যে কোনও লুকানো পার্থক্য খুঁজে পাওয়া উচিত।
lgarzo

6

ফাইল ডাব্লু / নন-প্রিন্টেবল অক্ষরগুলির সাথে তুলনা করার সময় আমি ওড (অষ্টাল ডাম্প) ব্যবহারযোগ্য বলে মনে করি (বিশেষত যে ফাইলগুলি পৃথকভাবে স্থির করে সেগুলি "বাইনারি" হয় এবং সুতরাং আপনাকে কেবল তাদের পার্থক্য বলে দেয়)।

নীচের উদাহরণে, আমি এমন এক জোড়া ফাইল তৈরি করি যা মূলগুলির মতো হতে পারে, তারপরে মূল আউটপুটটির সাথে আলাদা হয়; এরপরে আমি কয়েক "ভিন্ন" আউটপুটগুলিতে পৃথক হই।

$ প্রতিধ্বনি 1> 1
$ প্রতিধ্বনি "1"> 2
$ ডিফ 1 2

1c1  
< 1  
- ---  
> 1   

$ od -c 1> 1.od
$ od -c 2> 2.od
$ ডিফেরফ 1.od 2.od

1,2c1,2
< 0000000   1  \n
< 0000002
---
> 0000000   1      \n
> 0000003

$ od -Ax -c -t x1 1> 1.od
$ od -Ax -c -t x1 2> 2.od
$ পৃথক 1.od 2.od

1,3c1,3
< 000000   1  \n
<         31  0a
< 000002
---
> 000000   1      \n
>         31  20  0a
> 000003

1

আমারও একই সমস্যা ছিল এবং আমি একটি সমাধান পেয়েছি যা সাহায্য করতে পারে, কমান্ডটি ব্যবহার করুন:

dos2unix <file1> <file2>

এর মধ্যে একটি ডস / উইন্ডোজ ফর্ম্যাটে এবং অন্যটি ইউনিক্স ফর্ম্যাটে থাকতে পারে

আমি এই কাজ করার পরে পার্থক্য সব ভাল ছিল!



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