linux小技巧(一)--文件比较

97 阅读2分钟

[TOC]

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选项
  1. -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 -r dir1 dir2