; diff命令在最简单的情况下,比较给定的两个文件的不同。如果使用“-”代替“文件”参数,则要比较的内容将来自标准输入。diff命令是以逐行的方式,比较文本文件的异同处。如果该命令指定进行目录的比较,则将会比较该目录中具有相同文件名的文件,而不会对其子目录文件进行任何比较操作。下面是linuxdiff命令的具体介绍:
铁岭网站制作公司哪家好,找创新互联公司!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设公司等网站项目制作,到程序开发,运营维护。创新互联公司从2013年成立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联公司。
diff(diff即different简写)命令用于比较文件的差异。
选项:
-
-a或——text:diff预设只会逐行比较文本文件;
-b或_ignore-space-change:不检查空格字符的不同;
-B或_ignore-blank-lines:不检查空白行;
-c:显示全部内容,并标出不同之处;
-C
-d或——minimal:使用不同的演算法,以小的单位来做比较;
-D
-e或——ed:此参数的输出格式可用于ed的script文件;
-f或-forward-ed:输出的格式类似ed的script文件,但按照原来文件的顺序来显示不同处;
-H或_speed-large-files:比较大文件时,可加快速度;
-l
-i或_ignore-case:不检查大小写的不同;
-l或——paginate:将结果交由pr程序来分页;
-n或——rcs:将比较结果以RCS的格式来显示;
-N或_new-file:在比较目录时,若文件A仅出现在某个目录中,预设会显示:Onlyin目录,文件A若使用-N参数,则diff会将文件A与一个空白的文件比较;
-p:若比较的文件为C语言的程序码文件时,显示差异所在的函数名称;
-P或_unidirectional-new-file:与-N类似,但只有当第二个目录包含了第一个目录所没有的文件时,才会将这个文件与空白的文件做比较;
-q或_brief仅显示有无差异,不显示详细的信息;
-r或——recursive:比较子目录中的文件;
-s或_report-identical-files:若没有发现任何差异,仍然显示信息;
-S
-t或_expand-tabs:在输出时,将tab字符展开;
-T或_initial-tab:在每行前面加上tab字符以便对齐;
-u,-U
-v或——version:显示版本信息;
-w或_ignore-all-space:忽略全部的空格字符;
-W
-x
-X
-y或_side-by-side:以并列的方式显示文件的异同之处;
_help:显示帮助;
_left-column:在使用-y参数时,若两个文件某一行内容相同,则仅在左侧的栏位显示该行内容;
_suppress-common-lines:在使用-y参数时,仅显示不同之处。
以上就是今天的分享了,希望可以帮助到大家。
本文章基于thinkpadE15品牌、centos7系统撰写的。
可以用diff命令对比文档内容。
[语法]: diff [参数] 文件1 文件2
[说明]: 本命令比较两个文本文件,将不同的行列出来
-b 将一串空格或TAB 转换成一个空格或TAB
-e 生成一个编辑角本,作为ex 或ed 的输入可将文件1 转换成文件2
[例子]:
diff file1 file2
diff -b file1 file2
diff -e file1 file2 edscript
diff 命令的常用参数
a 将所有文件当做文本文件来处理
b 忽略空格造成的不同
B 忽略空行造成的不同
q 只报告什么地方不同,不报告具体的不同信息
H 利用试探法加速对大文件的搜索
i 忽略大小写的变化
l 用pr对输出进行分页
r 在比较目录时比较所有的子目录
s 两个文件相同时才报告
v 在标准输出上输出版本信息并退出
实例:比较两个文件
代码如下:
[root@localhost test3]# diff log2014.log log2013.log
----------------------------------------------------------------------------
3c3
《 2014-03
---
》 2013-03
8c8
《 2013-07
---
》 2013-08
11,12d10
《 2013-11
《 2013-12
----------------------------------------------------------------------------
说明:上面的“3c3”和“8c8”表示log2014.log和log20143log文件在3行和第8行内容有所不同;“11,12d10”表示第一个文件比第二个文件多了第11和12行。
如果想对两个有序的文件进行比较,可以使用comm命令。
语法:comm [- 123 ] file1 file2
说明:该命令是对两个已经排好序的文件进行比较。其中file1和file2是已排序的文件。comm读取这两个文件,然后生成三列输出:仅在file1中出现的行;仅在file2中出现的行;在两个文件中都存在的行。如果文件名用“- ”,则表示从标准输入读取。
comm -1 不显示只出现在第一个文件的行。
comm -2 不显示只出现在第二个文件的行。
comm -3 不显示同时出现在两个文件的行。
comm file1 file2 显示三列,第一列代表只出现在file1的行,第二列代表只出现在file2的行,第三列代表俩个文件同时出现的行
comm -12 显示两个文件同时出现的行 也就是交集
comm -13 显示只出现在第二个文件的行
comm -23 显示只出现在第一个文件的行
例如:假设要对文件myfile1和myfile2进行比较
$ cat myfile1
main( )
{
float a,b, i, j ,z ;
a=i=10 ; b=j=5 ;
z= i + j ;
printf(“z=%d\\\\n”,z) ;
}
$ cat myfile2
#include stdio.h
main( )
{
float i, j ,z ;
i=10 ; j=5 ;
z= i + j ;
printf(“z=%f\\\\n”,z) ;
}
$ comm - 12 myfile1 myfile2
main( )
{
z= i + j ;
}
就只显示文件myfile1和myfile2中共有的行。
1.列出文件清单命令:ls
ls命令能够列出当前目录下的所有内容。ls 命令的执行方式为:
# ls [-选项] [文件名或者目录名]
进入到Linux命令行中后,我们至少要知道当前所处的位置有哪些内容,这些信息就可以使用ls命令来获得。
在Linux中,ls命令是最常使用的命令之一,因为在命令行下要随时查看目录内容。如果不加任何选项的话,ls命令仅列出当前目录下的文件和目录名,例如,想要查看/etc目录下的内容,可以使用下列命令:
# ls /etc
如果想要列出当前目录下所有文件,则可以使用下列命令:
# ls -a
2、cat命令
功能:在标准输出上显示文件。
语法:cat [-vTEuAte] 文件
例子: cat example.txt
cat -A exam2.txt
cat file1 file2 file2
3、more命令
功能:在终端屏幕按屏显示文本文件。
语法: more [-pcdls] 文件
例子: more example.c
more -dc example.c
more -c -10 example.c
4、less命令
less命令的功能几乎和more命令一样,也是用来按页显示文件,不同之处在于less命令在显示文件时允许用户既
可以向前又可以向后翻阅文件。
5、head命令
功能:显示指定文件的前若干行。缺省设置为显示10行
语法:head [-n] 文件
例子: head example.c
head -3 example.c
6、tail命令
功能:显示指定文件的末尾若干行。缺省设置为显示10行
语法:tail [+ / - num ] [参数] 文件
+num 从第num行以后开始显示。- num 从距文件尾num行处开始显示。
例子: tail example.c
tail -4 example.c
7、grep、fgrep和egrep命令
功能:
这组命令以指定模式搜索文件,并通知用户在什么文件中搜索到与指定的模式匹配的字符串,并打印出所有包含该字符串的文本行,在该文本行的最前面是该行所在的文件名。grep命令一次只能搜索一个指定的模式;egrep命令检索扩展的正则表达式(包括表达式组和可选项);fgrep命令检索固定字符串,它不识别正则表达式,是快速搜索命令。
语法:
grep [-EFbcihlnvxef] [查找模式] [文件名1,文件名2,……]
egrep [选项] [查找模式] [文件名1,文件名2,……]
fgrep [选项] [查找模式] [文件名1,文件名2,……]
例子: grep "text file" example
grep data *
grep goto *.c
Y:diff命令
●简介
★diff命令用于比较文件的差异。
★diff以逐行的方式,比较文本文件的异同处。如果指定要比较目录,则diff会比较目录中相同文件名的文件,但不会比较其中子目录。
●语法
★命令格式:diff[参数][文件1或目录1][文件2或目录2]
★参数:
☆-行数 指定要显示多少行的文本。此参数必须与-c或-u参数一并使用。
☆-a或--text diff预设只会逐行比较文本文件。
☆-b或--ignore-space-change 不检查空格字符的不同。
☆-B或--ignore-blank-lines 不检查空白行。
☆-c 显示全部内文,并标出不同之处。
☆-C行数或--context行数 与执行"-c-行数"指令相同。
☆-d或--minimal 使用不同的演算法,以较小的单位来做比较。
☆-D巨集名称或ifdef巨集名称 此参数的输出格式可用于前置处理器巨集。
☆-e或--ed 此参数的输出格式可用于ed的script文件。
☆-f或-forward-ed 输出的格式类似ed的script文件,但按照原来文件的顺序来显示不同处。
☆-H或--speed-large-files 比较大文件时,可加快速度。
☆-l字符或字符串或--ignore-matching-lines字符或字符串 若两个文件在某几行有所不同,而这几行同时都包含了选项中指定的字符或字符串,则不显示这两个文件的差异。
☆-i或--ignore-case 不检查大小写的不同。
☆-l或--paginate 将结果交由pr程序来分页。
☆-n或--rcs 将比较结果以RCS的格式来显示。
☆-N或--new-file 在比较目录时,若文件A仅出现在某个目录中,预设会显示:
☆Only in目录:文件A若使用-N参数,则diff会将文件A与一个空白的文件比较。
☆-p 若比较的文件为C语言的程序码文件时,显示差异所在的函数名称。
☆-P或--unidirectional-new-file 与-N类似,但只有当第二个目录包含了一个第一个目录所没有的文件时,才会将这个文件与空白的文件做比较。
☆-q或--brief 仅显示有无差异,不显示详细的信息。
☆-r或--recursive 比较子目录中的文件。
☆-s或--report-identical-files 若没有发现任何差异,仍然显示信息。
☆-S文件或--starting-file文件 在比较目录时,从指定的文件开始比较。
☆-t或--expand-tabs 在输出时,将tab字符展开。
☆-T或--initial-tab 在每行前面加上tab字符以便对齐。
☆-u,-U列数或--unified=列数 以合并的方式来显示文件内容的不同。
☆-v或--version 显示版本信息。
☆-w或--ignore-all-space 忽略全部的空格字符。
☆-W宽度或--width宽度 在使用-y参数时,指定栏宽。
☆-x文件名或目录或--exclude文件名或目录 不比较选项中所指定的文件或目录。
☆-X文件或--exclude-from文件 您可以将文件或目录类型存成文本文件,然后在=文件中指定此文本文件。
☆-y或--side-by-side 以并列的方式显示文件的异同之处。
☆--help 显示帮助。
☆--left-column 在使用-y参数时,若两个文件某一行内容相同,则仅在左侧的栏位显示该行内容。
☆--suppress-common-lines 在使用-y参数时,仅显示不同之处。
●案例
★实例一:比较两个文件
[root@localhost test3]# diff log2014.log log2013.log
3c3
2014-03
---
2013-03
8c8
2013-07
---
2013-08
11,12d10
2013-11
2013-12
☆上面的"3c3"和"8c8"表示log2014.log和log20143log文件在3行和第8行内容有所不同;"11,12d10"表示第一个文件比第二个文件多了第11和12行。
★实例二:并排格式输出
[root@localhost test3]# diff log2014.log log2013.log -y -W 50
2013-01 2013-01
2013-02 2013-02
2014-03 | 2013-03
2013-04 2013-04
2013-05 2013-05
2013-06 2013-06
2013-07 2013-07
2013-07 | 2013-08
2013-09 2013-09
2013-10 2013-10
2013-11
2013-12
[root@localhost test3]# diff log2013.log log2014.log -y -W 50
2013-01 2013-01
2013-02 2013-02
2013-03 | 2014-03
2013-04 2013-04
2013-05 2013-05
2013-06 2013-06
2013-07 2013-07
2013-08 | 2013-07
2013-09 2013-09
2013-10 2013-10
2013-11
2013-12
★说明:
☆"|"表示前后2个文件内容有不同;
☆""表示后面文件比前面文件少了1行内容;
☆""表示后面文件比前面文件多了1行内容;