ইউনিক্স পার্শ্ব-পার্শ্বের ফলাফলের পার্থক্য?


106

আমি কীভাবে ইউনিক্স ডিফ-কমান্ডের ফলাফলকে একের পর এক পার্থক্যের পরিবর্তে পাশ-থেকে-পাশের প্লট করতে পারি? একটি উদাহরণ জন্য নিচে দেখুন:

    diff /tmp/test1  /tmp/test2
1,4c1,2
< asfdsadf
< asdfsad
< fsaf
< fdsadf
---
> asdfsafdsf
> saf
6,8d3
< sadf
< asdf
< sadf
10d4
< fasd
12,13c6,14
< sadfa
< fd
---
> sadf
> sadf
> sadf
> sadf
> sadf
> sadf
> sadf
> sadf
> safa

আমি কিছু চাই:

diff /tmp/test1  /tmp/test2
1,4c1,2
< asfdsadf       > asdfsafdsf
< asdfsad        > saf       
< fsaf
< fdsadf
---
6,8d3
< sadf
< asdf
< sadf
10d4
< fasd
12,13c6,14
< sadfa               > sadf
< fd              > sadf
---               > sadf
              > sadf
              > sadf
              > sadf
              > sadf
              > sadf
              > safa

ভিমডিফও সাহায্য করতে পারে। শুভকামনা।
শেল্টার

উত্তর:


168

থেকে man diff, আপনি -yপাশাপাশি পাশাপাশি করতে ব্যবহার করতে পারেন ।

-y, --side-by-side
       output in two columns

সুতরাং, বলুন:

diff -y /tmp/test1  /tmp/test2

পরীক্ষা

$ cat a                $ cat b
hello                  hello
my name                my name
is me                  is you

আসুন তাদের তুলনা করুন:

$ diff -y a b
hello                                                           hello
my name                                                         my name
is me                                                         | is you

39
মনে রাখবেন যে diffহার্ড-কোডড সর্বাধিক আউটপুট প্রস্থ (১৩০ কলাম) রয়েছে। --width=$COLUMNSআপনার টার্মিনাল প্রস্থে এটি সেট করতে পৃথক বিকল্প যুক্ত করুন ।
এনটিসি 2

6
এছাড়াও বড় স্কোরলি / সন্ধানযোগ্য ডিফের জন্য বড় ডিফগুলির জন্য কেবল এই জাতীয় পাইপ কম করুন:diff -y /tmp/test1 /tmp/test2 | less
উইলব্রেডলি

কলর্ডিফটি দেখুন
ভ্লাদিস্লাভস ডভগ্যালিক্স

5
আরও ভালdiff --width=$COLUMNS --suppress-common-lines --side-by-side a b
rubo77

@ রুবো 77 আপনি কীভাবে ট্যাব সম্প্রসারণ সেট আপ করেছেন তার উপর নির্ভর করে আপনি স্পেসগুলিতে ট্যাবগুলি প্রসারিত করতেও পারেন যাতে আউটপুট লাইনগুলি কলামগুলিতে সঠিকভাবে আপ করতে পারে:diff --expand-tabs --width=$COLUMNS --suppress-common-lines --side-by-side a b
এডওয়ার্ডটীচ

40

আইসিডিফের হোমপেজ থেকে :

এখানে চিত্র বর্ণনা লিখুন

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

সমস্ত পরিস্থিতিতে পৃথক প্রতিস্থাপনের চেষ্টা করার পরিবর্তে, আইসিডিফের লক্ষ্য হ'ল একটি সরঞ্জাম যা আপনি যখন পৌঁছাতে পারছেন ততক্ষণে ভিন্ন থেকে স্পষ্ট না হয়ে কী পরিবর্তন হয়েছিল তার আরও ভাল চিত্র পেতে আপনি পৌঁছাতে পারেন।

আইএমএইচও, এর আউটপুট তুলনায় অনেক বেশি পঠনযোগ্য diff -y


29
diff -y --suppress-common-lines file1 file2

3
এটি গ্রহণযোগ্য উত্তর হওয়া উচিত কারণ কেবল -yসাধারণ লাইনগুলিও দেখায় যা কেবল diffএবং মূল প্রশ্নের মতো নয়। +1 টি।
হেলিক্স

আরও ভালdiff -W $COLUMNS --suppress-common-lines -y file1 file2
rubo77

13

তুমি ব্যবহার করতে পার:

sdiff  file1 file2

অথবা

diff -y file1 file2

অথবা

vimdiff file1 file2

পাশাপাশি প্রদর্শন জন্য।


2
আমি ভাবছিলাম কি পার্থক্য diff -yএবং sdiff? তাদের আউটপুট আমার কাছে অভিন্ন দেখাচ্ছে।
হাক্স

11

sdiffপাশাপাশি ফাইলের পার্থক্য একত্রিত করার জন্য আপনার থাকা উচিত । man sdiffপুরো গল্পের জন্য একটি পড়ুন ।


2
আমার সিস্টেমে (জিএনইউ / লিনাক্স) sdiffএকই জিনিসটি প্রদর্শিত হবে diff -yএবং sdiffতথ্য নথিভুক্তি বলছে যে এটি অবহেলা করা হয়েছে: "'আউটপুট' ('-o') ছাড়াই 'এসডিফ' পাশাপাশি পার্শ্ববর্তী পার্থক্য তৈরি করে This অপ্রচলিত; পরিবর্তে 'বিচ্ছিন্ন' বিকল্পের '- পাশপাশি' ('-y') ব্যবহার করুন ""
এনটিসি 2

7

আপনি কেবল ব্যবহার করতে পারেন:

diff -y fileA.txt fileB.txt | colordiff

এটি আউটপুট দুটি কলমে বিভক্ত এবং বর্ণযুক্ত দেখায়! ( colordiff)


1
এটি কেবল ওএসএক্সে চেষ্টা করে দেখুন এটি এখানে কাজ করে না। এটি শুধুমাত্র লিনাক্সের জন্য।
নিকোলা পেটকানস্কি

কালর্ডিফ অসক্সে নেই।
টেরি ফ্রেঙ্গুইয়াডাকিস

আপনি হোমব্রেইউ ব্যবহার করে ওএসএক্সে কলর্ডিফ ইনস্টল করতে পারেন কলর্ডিফ সূত্রটি দেখুন brew install colordiff
জর্জি ফার্নান্দো ম্যাট্রিকালি


6

ব্যবহার করে দেখুন cdiff - দেখুন রঙ্গিন, কর্মক্ষেত্র অথবা পাশ এবং স্বয়ংক্রিয় পেজার সমর্থন দ্বারা প্রান্তের সঙ্গে stdin থেকে ক্রমবর্ধমান পরিবর্তন।



4

যদি আপনার ফাইলগুলির স্পেস এবং ট্যাবগুলির অসামঞ্জস্যপূর্ণ ব্যবহার থাকে তবে আপনি -tট্যাবগুলি প্রসারিত করার জন্য যুক্তিটি অন্তর্ভুক্ত করতে সহায়ক হতে পারেন :

diff -ty file1 file2

1

রঙ, পাশাপাশি এবং উপন্যাস সহ বর্ধিত ডিফ কমান্ড

ধরুন ফাইলের বিষয়বস্তুগুলি এর মতো:

cat /tmp/test1.txt
1
2
3
4
5
8
9

এবং

cat /tmp/test2.txt
1
1.5
2
4
5
6
7

পাশাপাশি পাশাপাশি তুলনা করা

diff --width=$COLUMNS --suppress-common-lines --side-by-side --color=always /tmp/test1.txt /tmp/test2.txt
                                                                              > 1.5
3                                                                             <
8                                                                             | 6
9                                                                             | 7

আপনি ব্যবহারের জন্য উলামের সংজ্ঞা দিতে পারেন

alias diff='diff --width=$COLUMNS --suppress-common-lines --side-by-side --color=always'

তারপরে নতুন ভিন্ন ফলাফল:

diff /tmp/test1.txt /tmp/test2.txt
                                                                              > 1.5
3                                                                             <
8                                                                             | 6
9                                                                             | 7
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.