command line - कमांड लाइन पर diff रंग कैसे करें?




command-line colors (6)

जब मेरे पास एक अंतर होता है, तो मैं इसे कैसे रंग सकता हूं ताकि यह अच्छा लगे? मैं इसे कमांड लाइन के लिए चाहता हूं, इसलिए कृपया कोई जीयूआई समाधान न करें।


असल में एक और विकल्प प्रतीत होता है (जिसे मैंने हाल ही में देखा है, ऊपर वर्णित समस्या में चलते समय):

git diff <file1> <file2>

यदि आपके पास गिट है (जो आप पहले से ही किसी भी तरह से उपयोग कर रहे हैं), तो आप इसे तुलना के लिए उपयोग करने में सक्षम होंगे, भले ही फाइलें संस्करण नियंत्रण में न हों। यदि डिफ़ॉल्ट रूप से आपके लिए सक्षम नहीं है, तो यहां कलर सपोर्ट सक्षम करने से पहले उल्लेख किए गए कुछ कामकाजों की तुलना में काफी आसान लगता है।


आप colordiff का उपयोग करने के लिए subversion कॉन्फ़िगरेशन बदल सकते हैं

~ / .subversion / config.diff

 ### Set diff-cmd to the absolute path of your 'diff' program.
 ###   This will override the compile-time default, which is to use
 ###   Subversion's internal diff implementation.
-# diff-cmd = diff_program (diff, gdiff, etc.)
+diff-cmd = colordiff

के माध्यम से: https://gist.github.com/westonruter/846524


चूंकि wdiff दोनों प्रविष्टियों और हटाने के आरंभ और अंत में स्ट्रिंग निर्दिष्ट करने वाले wdiff स्वीकार करता है, इसलिए आप उन स्ट्रिंग्स के रूप में एएनएसआई रंग अनुक्रमों का उपयोग कर सकते हैं:

wdiff -n -w $'\033[30;41m' -x $'\033[0m' -y $'\033[30;42m' -z $'\033[0m' file1 file2

उदाहरण के लिए, यह दो सीएसवी फाइलों की तुलना करने का उत्पादन है:

https://www.gnu.org/software/wdiff/manual/html_node/wdiff-Examples.html से उदाहरण


मैं grc (जेनेरिक कलरिसर) का उपयोग करता हूं, जो आपको diff सहित कई कमांड के आउटपुट को रंगने की अनुमति देता है।

यह एक अजगर लिपि है जिसे किसी भी कमांड के चारों ओर लपेटा जा सकता है। तो diff file1 file2 का आविष्कार करने के बजाय, आप रंगीन आउटपुट देखने के लिए grc diff file1 file2 का आह्वान करेंगे। मैं इसे आसान बनाने के लिए grc diff लिए aliased diff है।


diff लिए मैन पेज अपने आप से रंगीनकरण के लिए कोई समाधान नहीं सुझाते हैं। कृपया colordiff का उपयोग करने पर विचार करें। यह डिफ के चारों ओर एक रैपर है जो समान आउटपुट को diff के रूप में उत्पन्न करता है, सिवाय इसके कि यह रंगीन वाक्यविन्यास का उपयोग करके आउटपुट को बढ़ाता है ताकि पठनीयता में वृद्धि हो सके:

diff old new | colordiff

या केवल:

colordiff old new

स्थापना:

  • उबंटू / डेबियन: sudo apt-get install colordiff
  • ओएस एक्स: brew install colordiff या port install colordiff

diff --color --color विकल्प जीएनयू diffutils 3.4 (2016-08-08) में जोड़ा गया था

यह अधिकांश distros पर डिफ़ॉल्ट diff कार्यान्वयन है, जो जल्द ही इसे प्राप्त हो जाएगा।

3.5 पर ऐसा लगता है:

साथ में:

diff --color -u \
  <(seq 6 | sed 's/$/ a/') \
  <(seq 8 | grep -Ev '^(2|3)$' | sed 's/$/ a/')

स्पष्ट रूप से प्रतिबद्ध c0fa19fe92da71404f809aafb5f51cfd99b1bee2 (मार्च 2015) में जोड़ा गया।

मैंने वर्ड लेवल डिफ को भी diff-highlight से अनुरोध किया है: https://lists.gnu.org/archive/html/diffutils-devel/2017-01/msg00001.html





diff