डिफ-बी और डब्ल्यू अंतर


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विकल्पों में क्या अंतर है ? Kubuntu Linux 13.04 पर diffutils 3.2 के साथ परीक्षण किया गया।

जवाबों:


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 से परिणाम कुछ भी नहीं है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.