diff 命令详解

diff f1 f2   #默认normal模式,<>表示前后文件
diff -c f1 f2   #Context模式
diff -u f1 f2   #Unified模式,更直观,推荐

常用参数:

-b  --ignore-space-change 忽略空格,如果两行进行比较,多个连续的空格会被当作一个空格处理,同时会忽略掉行尾的空格差异。
-w --ignore-all-space 忽略所有空格,忽略范围比-b更大,包括很多不可见的字符都会忽略。
-B 忽略空白行。
-y  输出两列,一个文件一列,有点类似GUI的输出外观了,这种方式输出更加直观。
-W 大写W,当指定-y的时候设置列的宽度,默认是130
-x, --exclude=PAT 比较目录的时候排除指定PAT模式的文件名的比较
-i, --ignore-case 忽略两个文件中大小写的不同
-e 将比较的结果保存成一个ed脚本,之后ed程序可以执行该脚本文件,从而将file1修改成与file2的内容相同,这一般在patch的时候有用。
-r 如果比较两个目录,-r参数会比较其下同名的子目录
-q 输出结果中,只指出两个文件不同,而不输出两个文件具体内容的比较,这在比较两个目录的时候很好用。我们只需要知道两个目录下那些文件做了修改,而不需要知道每个文件具体修改了那些内容。特别是当两个目录文件很多的时候。

diff -e f1 f2 > ed.script
echo 'w' >> ed.script
# yum install -y ed 
ed - f1 < ed.script

#注意中间的 – 符号表示从标准输入中读取,而 < script.txt 则重定向script.txt的内容到标准输入。

 

posted on 2021-03-01 16:11  Karlkiller  阅读(689)  评论(0编辑  收藏  举报

导航