linux第七讲(上)
1.diff link
作用:diff命令能比较单个文件或者目录内容。如果指定比较的是文件,则只有当输入为文本文件时才有效。以逐行的方式,比较文本文件的异同处。
如果指定比较的是目录的的时候,diff 命令会比较两个目录下名字相同的文本文件。列出不同的二进制文件、公共子目录和只在一个目录出现的文件。
参数:-a或--text diff预设只会逐行比较文本文件。
-c 显示全部内文,并标出不同之处。
-H或--speed-large-files 比较大文件时,可加快速度。
-i或--ignore-case 不检查大小写的不同。
-r或--recursive 比较子目录中的文件。
-u,-U或--unified= 以合并的方式来显示文件内容的不同。
-y或--side-by-side 以并列的方式显示文件的异同之处。
-W或--width 在使用-y参数时,指定栏宽
语法:diff[参数][文件1或目录1][文件2或目录2]
diff a.log b.log
“3c3”表示文件第三行有不同
"11,12d10"表示第一个文件比第二个文件多了第11和12行
diff a.log b.log -y -W 50
并列显示文件具体内容
“|”表示前后2个文件内容有不同
“<”表示后面文件比前面文件少了1行内容
“>”表示后面文件比前面文件多了1行内容
diff a.log b.log -c
显示全部文本
这种方式在开头两行作了比较文件的说明,这里有三中特殊字符:
“+” 比较的文件的后者比前着多一行
“-” 比较的文件的后者比前着少一行
“!” 比较的文件两者有差别的行
diff a.log b.log -u
统一格式输出
它的第一部分,也是文件的基本信息:
--- log2014.log 2012-12-07 18:01:54.000000000 +0800
+++ log2013.log 2012-12-07 16:36:26.000000000 +0800
"---"表示变动前的文件,"+++"表示变动后的文件。
第二部分,变动的位置用两个@作为起首和结束。
@@ -1,12 +1,10 @@
前面的"-1,12"分成三个部分:减号表示第一个文件(即log2014.log),"1"表示第1行,"12"表示连续12行。
合在一起,就表示下面是第一个文件从第1行开始的连续12行。同样的,"+1,10"表示变动后,成为第二个文件从第1行开始的连续10行。
2.uniq
作用:过滤重复部分显示文件内容。
参数: - c 显示输出中,在每行行首加上本行在文件中出现的次数。它可取代- u和- d选项。
- d 只显示重复行。
- u 只显示文件中不重复的各行。
- n 前n个字段与每个字段前的空白一起被忽略。一个字段是一个非空格、非制表符的字符串,彼此由制表符和空格隔开(字段从0开始编号)。
+n 前n个字符被忽略,之前的字符被跳过(字符从0开始编号)。
- fn 与- n相同,这里n是字段数。
- sn 与+n相同,这里n是字符数。
语法: cat file | sort | uniq -c
查看文件中具体重复行
3.stat
作用:获取文件的属性,例如大小,最后的修改时间
参数: -f 显示了有关文件系统(而非文件)的信息
-t 显示了完全相同的信息
语法:stat file -f -t