Linux常用文本比对命令——diff
来源:互联网 发布:豆豆软件 编辑:程序博客网 时间:2024/05/01 05:43
一、前言
在windows环境下我们通常会选择使用功能强大显示友好的Beyond Compare工具来进行文件的比对。其实在Linux系统中就自带了同样的强大比对命令,可以让我们在Linux系统下直接使用。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参数时,仅显示不同之处。
三、常用实例
1、仅比对两个文件是否相同
[roy@localhost Test]$ diff -q 1.txt 2.txt Files 1.txt and 2.txt differ
2、比对两个目录下所有文件是否相同
[roy@localhost Documents]$ diff -rqN ./Test ./Test1Files ./Test/1.txt and ./Test1/1.txt differFiles ./Test/2.txt and ./Test1/2.txt differ
如果是很大的目录,不同文件非常多,显示查看不方便又或者得到记录文件的话,使用重定向到日志中。
[roy@localhost Documents]$ diff -rqN ./Test ./Test1 > filelist.log
之后查看filelist.log文件就行了
3、比对两个文件并显示异常位置
[roy@localhost Test]$ diff -y 1.txt 2.txt a ab bc cd de ef fg gh hj |hk |hl |hm |hn |h
“|”表示前后2个文件内容有不同
“<”表示后面文件比前面文件少了1行内容
“>”表示后面文件比前面文件多了1行内容
阅读全文
0 0
- Linux常用文本比对命令——diff
- linux文件比对工具——diff
- Linux命令——diff
- perl学习—文本比对程序
- linux sed、awk、diff命令常用操作
- Linux战地日记——comm命令和diff命令
- linux基本命令(36)——diff命令
- 使用JS实现HTML Diff文本差异化比对功能
- 文本比较命令comm,diff
- 比较文本差异diff 命令
- linux命令——patch(含diff)
- Linux常用文本处理命令
- Linux 常用文本命令 总结
- Linux文本比较指令-diff
- Linux Diff命令
- linux diff 命令详解
- linux Diff 命令用法
- linux:diff - 命令
- hadoop学习流程
- 后台传递Json数据封装在table中
- java泛型中<?>和<T>区别
- 获取当前文档中的标高
- 恒德智能家居系统大行业解决方案
- Linux常用文本比对命令——diff
- 常考的Ajax面试题
- android:使用audiotrack 类播放wav文件
- learn opencv-使用forEach进行并行像素访问
- UDS诊断服务中网络层对应用层数据的封装(15765.2)
- CSDN-markdown编辑器
- jdk1.5新特性
- 题目:1009. 说反话 (20)(c++迭代器实现)
- c++文件读写之getline