Advertisement
Guest User

Untitled

a guest
May 23rd, 2017
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.87 KB | None | 0 0
  1. 开发中偶尔会遇到,线下测试好好的项目,放到线上死活就是和测试不一致,这时候排除过程中,有一种情况常会考虑到:**比较线上和线下配置文件是否一致**,搞不好线上真被人动过或者上线部署脚本有问题。
  2.  
  3. > 那Linux下如何比较两个文件的异同?
  4.  
  5. 使用命令`diff -y -W100 file1 file2` 其中`-y` 参数表示比较时两个文件并排对比展示,这样直观一些。而`-W100`则表示列的宽度为100,数字可以变。
  6.  
  7. 下面:***查看两个要比较文件内容***
  8.  
  9. ```bash
  10. [root@dev test]# cat ./test1.txt
  11. 111
  12. 222
  13. 331
  14. 444
  15. [root@dev test]# cat ./test2.txt
  16. 111
  17. 333
  18. 444
  19. 555
  20. ```
  21.  
  22. 下面:***比较两个文件异同,不指定列宽度(默认130)***
  23.  
  24. ```bash
  25. [root@dev test]# diff -y ./test1.txt ./test2.txt
  26. 111 111
  27. 222 | 333
  28. 331 <
  29. 444 444
  30. > 555
  31. ```
  32.  
  33. 下面:***比较两个文件异同,指定列宽度20***
  34.  
  35. ```bash
  36.  
  37. [root@dev test]# diff -y -W20 ./test1.txt ./test2.txt
  38. 111 111
  39. 222 | 333
  40. 331 <
  41. 444 444
  42. > 555
  43. ```
  44.  
  45. 注意比较结果中`|`表示这一行内容有差异。
  46. `<` 表示后面文件少一行
  47. `>`表示后面文件多一行
  48.  
  49.  
  50. >关于文件比较只记住上面这个`diff -y file1 file2` 就完全足够了,有用到时候能立即反映上来就行。
  51.  
  52. 还有一些可选参数,感觉没什么必要记,像`-i` 这种比较时候用来忽略大小写,使用场景太小了,我比较文件肯定是两个本来应该完全相同的文件,意外某个地方被动过了,肉眼不好找才用diff的,如果还忽略大小写,有可能找不出来。
  53.  
  54. 另外关于上文中参数`-W20` 数字 20具体指的是每列的宽度还是两列总共的宽度,以及 20的长度单位是字符还是字节 我也都没考究出来。不过我们知道它可以调节屏幕显示的效果就行。
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement