linux小技巧(一)–文件比较
1.diff
diff命令是一种在Unix、Linux和类Unix系统中广泛使用的命令行工具,用于比较两个文件的内容差异。
基本输出解释
- 当diff命令比较两个文件时,它会按行进行比较,并报告它们之间的差异。
- 输出中,a表示添加(add),d表示删除(delete),c表示改变(change)。
- 输出格式通常显示为<行号><操作><行号>,然后是具体的文本差异。
基本示例
有两个文本文件,分别命名为file1.txt和file2.txt,并执行了diff file1.txt file2.txt命令。
#3,5c3,4:这表示file1.txt的第3到第5行与file2.txt的第3到第4行有差异
3,5c3,4
#行以<开头:这些是仅出现在第一个文件(file1.txt)中的行。
< this is the third line of file1
< this is the fourth line of file1
< this is the fifth line of file1
---#分隔符,用于区分两个文件中不同的内容
#行以>开头:这些是仅出现在第二个文件(file2.txt)中的行。
> this is the third line, but it's different in file2
> this is the fourth line in file2
diff常见符号
<:表示该行仅在第一个文件中存在。
>:表示该行仅在第二个文件中存在。
-(在上下文和统一格式中):表示该行被移除或修改。
+(在上下文和统一格式中):表示该行被添加或修改。
a:表示添加。
d:表示删除。
c:表示改变。
常见的diff选项
- -c,-C:
使用-c或-C选项可以生成带有上下文的差异输出。上下文模式会显示每个差异周围的几行,帮助你更好地理解差异的背景。
例如:diff -c file1.txt file2.txt
2.-u(–unified):
统一格式是一种更紧凑的显示方式,它也提供差异周围的上下文,但以更紧凑的形式。
例如:diff -u file1.txt file2.txt
3.-i(忽略大小写):
使用-i选项可以在比较时忽略大小写差异。
例如:diff -i file1.txt file2.txt
4.-b(忽略空格变化):
diff可以通过-b选项忽略行尾空格和多个空格间的差异。
例如:diff -b file1.txt file2.txt
5.-w(忽略所有空格):
使用-w选项可以忽略所有空白字符的差异,包括空格和制表符。
例如:diff -w file1.txt file2.txt
6.-y(–side-by-side)(并排比较):
这个选项会将两个文件的内容并排显示,方便直观比较。
例如:diff --side-by-side file1.txt file2.txt
7.–brief(仅报告是否存在差异):
如果你只想知道两个文件是否不同,而不需要知道具体差异,可以使用–brief选项。
例如:diff --brief file1.txt file2.txt
8.-r(递归比较目录):
使用-r选项可以递归比较目录中的所有文件。
如:diff --brief file1.txt file2.txt
8.-r(递归比较目录):
使用-r选项可以递归比较目录中的所有文件。
例如:diff -r dir1 dir2