मेरे पास दो कॉन्फ़िगरेशन फाइलें हैं, पैकेज मैनेजर से मूल और स्वयं द्वारा संशोधित एक अनुकूलित। मैंने व्यवहार का वर्णन करने के लिए कुछ टिप्पणियां जोड़ी हैं।
मैं diff
कॉन्फ़िगरेशन फ़ाइलों पर कैसे चल सकता हूं , टिप्पणियों को लंघन? एक टिप्पणी लाइन द्वारा परिभाषित किया गया है:
- वैकल्पिक प्रमुख व्हाट्सएप (टैब और स्पेस)
- हैश साइन (
#
) - कुछ और चरित्र
पहली आवश्यकता को छोड़ना सबसे सरल (सबसे सरल) नियमित अभिव्यक्ति होगी #.*
। मैंने GNU 3.0 के विकल्प की --ignore-matching-lines=RE
( -I RE
) विकल्प की कोशिश की , लेकिन मैं इसे आरई के साथ काम नहीं कर पाया। मैंने भी कोशिश की .*#.*
और .*\#.*
बिना किस्मत के। शाब्दिक Port 631
रूप से लाइन डालना ( ) RE
कुछ भी मेल नहीं खाता है, न ही यह स्लैश के बीच आरई लगाने में मदद करता है।
जैसा कि रेगेक्स के उपकरण के स्वाद में "कमी" की कमी है? , मैंने कोशिश की grep -G
:
grep -G '#.*' file
यह टिप्पणियों से मेल खाता है, लेकिन यह काम नहीं करता है diff -I '#.*' file1 file2
।
तो, इस विकल्प का उपयोग कैसे किया जाना चाहिए? मैं diff
कुछ लाइनें (मेरे मामले में, टिप्पणी) को कैसे छोड़ सकता हूं ? कृपया grep
फ़ाइल को आईएनजी और अस्थायी फ़ाइलों की तुलना करने का सुझाव न दें ।
diff -I
है, जैसा मैंने अपेक्षित था, वैसा व्यवहार नहीं किया। मैंने अपने उत्तर को एक उदाहरण के साथ अद्यतन किया जिसने मेरे लिए इस व्यवहार को स्पष्ट किया।
-I
विकल्प के कारण ब्लॉक को केवल तभी अनदेखा किया जा सकता है जब उसकी सभी पंक्तियाँ regexp से मेल खाती हों। इसलिए आप एक टिप्पणी को केवल उस तरीके से बदल सकते हैं, लेकिन टिप्पणी में परिवर्तन नहीं जो कि एक गैर-टिप्पणी परिवर्तन के निकट हैं।