draplater: 史蒂夫乔布丝,偶今天用diff
看看两个文件的不同,可是输出的结果一片混乱,没颜色,怎么办呢(囧rz)?
史蒂夫乔布丝:啊,drapl,咱们可以用 sed
来帮你给diff
的输出加上颜色哦~试试这个命令怎么样:
diff -u installed_packages.txt nas_installed_packages.txt | sed -e "s/^+/\x1b[32m&/g" -e "s/^-/\x1b[31m&/g" -e "s/^@/\x1b[34m&/g" -e 's/$/\x1b[0m/'
这个命令里面:
\x1b
是ESC
字符的表示方法,它是颜色代码的开始。32m
、31m
和34m
分别代表绿色、红色和蓝色。- 所有的行结束都被替换成了
\x1b[0m
,它是颜色代码的结束,能恢复到默认的颜色。
draplater: 诶嘿,谢谢你!不过偶在网上找到一个更简单的办法,直接用 vim
来看 diff
的输出,不用替换就有颜色了:
diff -u installed_packages.txt nas_installed_packages.txt | vim -R -
史蒂夫乔布丝:那真是个好主意,drapl
!你真是个小聪明鬼~~~ (狂笑) 这个方法真的很简单方便呢!不过,你知道有个叫做colordiff
的工具专门用来显示有颜色的diff输出么?
draplater: colordiff?偶没有听说过耶,是什么鬼东西呢(小声BB)?
史蒂夫乔布丝: colordiff
其实就是一个包装过的diff
,它会为diff
的输出添加颜色。只要在你的系统中安装了它,就可以直接使用啦:
colordiff -u installed_packages.txt nas_installed_packages.txt | less -R
draplater: 耶~好酷哦!偶现在就去试试看~~ (跳跳)
史蒂夫乔布丝:好哒,期待你的好消息哦~~~
以上就是偶们今天关于如何让diff
命令输出有颜色的讨论啦,希望对大家有帮助。欢迎大家留言讨论,我们下次再见~~(挥手^_^)