Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 开发中偶尔会遇到,线下测试好好的项目,放到线上死活就是和测试不一致,这时候排除过程中,有一种情况常会考虑到:**比较线上和线下配置文件是否一致**,搞不好线上真被人动过或者上线部署脚本有问题。
- > 那Linux下如何比较两个文件的异同?
- 使用命令`diff -y -W100 file1 file2` 其中`-y` 参数表示比较时两个文件并排对比展示,这样直观一些。而`-W100`则表示列的宽度为100,数字可以变。
- 下面:***查看两个要比较文件内容***
- ```bash
- [root@dev test]# cat ./test1.txt
- 111
- 222
- 331
- 444
- [root@dev test]# cat ./test2.txt
- 111
- 333
- 444
- 555
- ```
- 下面:***比较两个文件异同,不指定列宽度(默认130)***
- ```bash
- [root@dev test]# diff -y ./test1.txt ./test2.txt
- 111 111
- 222 | 333
- 331 <
- 444 444
- > 555
- ```
- 下面:***比较两个文件异同,指定列宽度20***
- ```bash
- [root@dev test]# diff -y -W20 ./test1.txt ./test2.txt
- 111 111
- 222 | 333
- 331 <
- 444 444
- > 555
- ```
- 注意比较结果中`|`表示这一行内容有差异。
- `<` 表示后面文件少一行
- `>`表示后面文件多一行
- >关于文件比较只记住上面这个`diff -y file1 file2` 就完全足够了,有用到时候能立即反映上来就行。
- 还有一些可选参数,感觉没什么必要记,像`-i` 这种比较时候用来忽略大小写,使用场景太小了,我比较文件肯定是两个本来应该完全相同的文件,意外某个地方被动过了,肉眼不好找才用diff的,如果还忽略大小写,有可能找不出来。
- 另外关于上文中参数`-W20` 数字 20具体指的是每列的宽度还是两列总共的宽度,以及 20的长度单位是字符还是字节 我也都没考究出来。不过我们知道它可以调节屏幕显示的效果就行。
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement