ডিফ-বি এবং -উই পার্থক্য


20

diffম্যানপেজ থেকে :

-b, --ignore-space-change
      ignore changes in the amount of white space

-w, --ignore-all-space
      ignore all white space

এ থেকে, আমি অনুমান করি যে -bএবং -wবিকল্পগুলির মধ্যে পার্থক্য -bহ'ল হোয়াইটস্পেসের ধরণের (ট্যাব বনাম ফাঁকা স্থান) সংবেদনশীল। তবে, এটি মনে হয় না:

$ diff 1.txt 2.txt 
1,3c1,3
<     Four spaces, changed to one tab
<         Eight Spaces, changed to two tabs
<     Four spaces, changed to two spaces
---
>       Four spaces, changed to one tab
>               Eight Spaces, changed to two tabs
>   Four spaces, changed to two spaces
$ diff -b 1.txt 2.txt 
$ diff -w 1.txt 2.txt 
$

সুতরাং, -bএবং -wবিকল্পগুলির মধ্যে পার্থক্য কী ? কুবুন্টু লিনাক্স ১৩.০৪-তে ডিফিউটিলেট ৩.২ দিয়ে পরীক্ষা করা হয়েছে।

উত্তর:


18

ম্যান পৃষ্ঠাটি সেই সময়ে খুব স্পষ্ট নয়, তবে তথ্য পৃষ্ঠাটি বিশদভাবে জানিয়েছে:

1.2 ফাঁকা এবং ট্যাব ব্যবধানে পার্থক্য দমন

--ignore-tab-expansion( -E) বিকল্প ট্যাব এবং ইনপুটের স্পেস মধ্যে পার্থক্য উপেক্ষা করে। একটি ট্যাব পরবর্তী ট্যাব স্টপের ফাঁকা সংখ্যার সমতুল্য বলে বিবেচিত হয় (* নোট ট্যাবস: :)।

--ignore-trailing-space( -Z) বিকল্প লাইন শেষে সাদা স্থান উপেক্ষা করে।

--ignore-space-change( -b) বিকল্প অনেক শক্তিশালী -Eএবং -Zমিলিত। এটি লাইন প্রান্তে সাদা স্থানটিকে উপেক্ষা করে এবং এক লাইনের মধ্যে এক বা একাধিক সাদা স্থানের অক্ষরের সমস্ত অন্যান্য ক্রমকে সমতুল্য বলে বিবেচনা করে। এই বিকল্পের diffসাহায্যে নিম্নলিখিত দুটি লাইন সমতুল্য হিসাবে বিবেচনা করে, যেখানে $রেখার সমাপ্তি নির্দেশ করে:

 Here lyeth  muche rychnesse  in lytell space.   -- John Heywood$
 Here lyeth muche rychnesse in lytell space. -- John Heywood   $

--ignore-all-space( -w) বিকল্প এখনো শক্তিশালী। এটির ভিন্নতা উপেক্ষা করে এমনকি যদি একটি লাইনের শ্বেত স্থান থাকে যেখানে অন্য লাইনের কোনওটিই থাকে না। "সাদা স্থান" অক্ষরগুলির মধ্যে ট্যাব, উল্লম্ব ট্যাব, ফর্ম ফিড, ক্যারেজ রিটার্ন এবং স্থান অন্তর্ভুক্ত রয়েছে; কিছু লোকেল অতিরিক্ত বর্ণকে সাদা স্থান হিসাবে সংজ্ঞায়িত করতে পারে। এই বিকল্পের diff সাহায্যে নিম্নলিখিত দুটি লাইন সমতুল্য হিসাবে বিবেচনা করে, যেখানে $লাইন শেষটি চিহ্নিত করে এবং ^Mএকটি ক্যারেজ রিটার্ন বোঝায়:

 Here lyeth  muche  rychnesse in lytell space.--  John Heywood$
   He relyeth much erychnes  seinly tells pace.  --John Heywood   ^M$

অন্যান্য অনেক প্রোগ্রামের জন্য নিউলাইনও একটি সাদা স্থানের অক্ষর, তবে diffএটি একটি লাইন-ওরিয়েন্টেড প্রোগ্রাম এবং একটি নিউলাইন অক্ষর সর্বদা একটি লাইন শেষ করে। সুতরাং বিকল্প -wবা --ignore-all-spaceবিকল্পটি নতুন লাইন-সম্পর্কিত পরিবর্তনগুলি উপেক্ষা করে না; এটি কেবলমাত্র অন্য সাদা স্থানের পরিবর্তনকে উপেক্ষা করে।


6

দেখে মনে হচ্ছে এটি শব্দের মধ্যে ফাঁকা স্থান সম্ভবত আরও বেশি তবে এটি আমার ফলাফল:

diff 1.txt 2.txt 
1,2c1,2
< test
< next next
---
> te  st     
> next  next


diff -b 1.txt 2.txt 
1c1
< test
---
> te  st 

-w থেকে ফলাফল কিছুই হয় না।

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