一、diff命令
diff命令是用来比较两个文件或目录的不同
diff 参数 target1 tarfet2
diff在比较文件过程中结果的读取方式
[num1,num2][a|c|d][num3,num4]
num1,num2表示在第一个文件中的行数;num3,num4表示在第二个文件中的行数
a表示:add 添加
c表示:change 更改
d表示:delete 删除
< 表示第一个文件的内容;
> 表示第二个文件的内容
- - - 分割线
例:2,4c2,4 表示改变第一个文件的第2行和第四行才能匹配第二个文件的第2行和第4行
测试:
比较file1,file2;
diff在比较目录过程中结果的读取方式
在test1目录里touch一个文件file,test2目录下没有文件
比较test1,test2
diff test1 test2
diff命令中常用的参数
-b 不检查空格字符的不同
-B 不检查空白行
-c 显示全部内文,并标出不同之处
-i 不检查大小写的不同
-p 比较的文件为C语言的程序码文件时,显示差异所在的函数名称(只能比较源码文件)
-q 仅显示有无差异,不显示详细的信息
-r 比较子目录中的文件
-u 以合并的方式来显示文件内容的不同
1.测试不检查空格字符的不同
2.测试不检查空白行
3.测试显示全部内文,并标出不同之处
4.不检查大小写的不同
5.
6.测试仅显示有无差异,不显示详细的信息
7.测试比较子目录中的文件
8.以合并的方式来显示文件内容的不同
patch 用于文件更新后不同文件,打补丁,类似游戏
yum install patch -y
patch -b file1 filetest
##保留源文件打补丁
patch file1 filetest
二、cut命令
cut命令多用于字符截取
-d 指定分隔符
-f 指定截取的列
-c 指定截取的字符位置
测试:复制一份/etc/passwd到mnt/用于实验
1.以:为分隔符截取passwd里的第1列和第3列
2.以:为分隔符截取passwd里的第1列到第3列
3.截取passwd里的第1个字符和第4个字符
4.截取passwd里的第1个字符到第4个字符
脚本示例:
执行ip_show.sh可以显示当前主机的ip地址
vim ip_show.sh
#!/bin/bash
ifconfig eth0 | grep inet | cut -d " " -f 16
执行user_show.sh显示当前主机中能登录系统的用户
#!/bin/bash
grep bash /etc/passwd | cut -d : -f 1
三、sort命令
多用于字符排序
sort -n ##纯数字排序
sort -r ##倒序
sort -u ##去掉重复数字
sort -o ##输出到指定文件中
sort -t ##指定分隔符
sort -k ##指定要排序的列
测试:新建一个文件westos并写入内容
1.对westos里的内容进行排序
2.对westos里的内容进行纯数字排序
3.对westos里的内容进行纯数字倒序排序
4.对westos里的内容进行纯数字排序并且不要有重复
5.对westos里的内容进行纯数字排序不要有重复,并且输出到指定文件file中
6.对westos里的第二列内容进行纯数字排序
四、uniq命令
对重复字符做相应的处理(通常与sort配合使用)
uniq -u ##显示唯一的行
uniq -d ##显示重复的行
uniq -c ##每行显示一次并统计重复次数
测试:
1.对westos里的内容进行纯数字排序,且每行统计一次并统计重复数字
2.对westos里的内容出现一次的进行纯数字排序
3.对westos里的内容进行纯数字排序,且只显示重复的行