用法:diff [options] files|directorys
输出信息: [num1,num2] [a|c|d] [num3,num4]
num1,num2 | 第一个文件中的行 |
---|---|
a | 添加 |
c | 更改 |
d | 删除 |
< | 第一个文件中的内容 |
> | 第二个文件中的内容 |
num3,num4 | 第二个文件中的行 |
常用参数:
-b | 忽略空格 |
---|---|
-B | 忽略空行 |
-i | 忽略大小写 |
-c | 显示文件所有内容并标示不同 |
-r | 对比目录 |
-u | 合并输出 |
命令演示及对比:
diff file1 file2
对比两个文件的内容并将不同点显示在下方
diff -b file1 file2
对比两个文件忽略其中位于行尾的空格
当不加参数时
diff -B file1 file2
对比两个文件忽略其中的空行
当不加参数时
diff -i file1 file2
对比两个文件并且忽略其大小写
当不加参数时出现差异
diff -c file file1
对比两个文件并且显示所有内容并标注不同
注意:有!表示这个地方有不同
当不加参数时只显示不同的地方
diff -r westos westosdir
对比两个目录的差异
diff -u file file1
合并file和file1中的输出
patch 原文件 布丁文件
-b | 备份原文件 |
---|
diff -u 文件名 文件名 > 文件名.path
patch -b file file.path
备份原文件且原文件保存为文件原名加.orig
注意:当不加-b参数时原文件不会被备份
-d | 指定 : 为分隔符 |
---|---|
-f | 指定显示的列 5第五列 |
-c | 指定截取的字符(数字用法同-f) |
cut -d / -f 2 passwd
以 / 为分割符显示第二列
cut -d : -f 1 passwd
以 : 为分割符显示第一列
cut -c 2 passwd 指定截取第二段字符
sort:
-n | 纯数字排序 |
---|---|
-r | 倒叙 |
-u | 去掉重复 |
-o | 输出到指定文件 |
-t | 指定分隔符 |
-k | 指定排序的列 |
当不加参数时:
sort file
排序按照第一个数字0-9大小排列
sort -n file:纯数字排序
按照数字大小排序
sort -nr file
按照数字的大小倒叙排列
sort -nru file
按照数字的大小倒叙排列且去掉重复项
sort -nru file -o zyj
将输出的数据导入到指定文件中
sort -nr -t : -k 3 passwd
指定分割符为:倒叙排列第3列数据
-c | 合并重复并统计重复个数 |
---|---|
-d | 显示重复的行 |
-u | 显示唯一的行 |
uniq -c
合并file中重复并统计重复个数
uniq -d
显示重复的行
uniq -u
显示唯一的行
tr ‘a-z’ ‘A-Z’ 小写转大写
tr ‘A-Z’ ‘a-z’ 大写转小写
test = [ ]
[ ] 就相当于test命令
“test $a = $b” = [ “$a” = “$b” ]
= | 等于 |
---|---|
!= | 不等于 |
-eq | 等于 |
-ne | 不等于 |
-le | 小于等于 |
-lt | 小于 |
-ge | 大于等于 |
-gt | 大于 |
命令演示:
对比大小
-eq 等于 -ne 不等于 -le 小于等于 -lt 小于 -ge 大于等于 -gt 大于
-a | 并且 |
---|---|
-o | 或者 |
[ “$a” -ge “$b” -a “$a” -gt “$c” ]&&echo yes||echo no
$a大于等于$b并且$a大于$c
正确时输出yes错误时输出no
[ “$a” -ge “$b” -o “$a” -gt “$c” ]&&echo yes||echo no
$a大于等于$b或者$a大于$c
-n | nozero 判定内容不为空 |
---|---|
-z | zero 判定内容为空 |
命令演示:
[ -n westos ]&& echo yes||echo no
判断内容不为空
[ -z westos ]&& echo yes||echo no
判断内容为空
-ef | 文件节点号是否一致(硬链) |
---|---|
-nt | 文件1是不是比文件2新 |
-ot | 文件1是不是比文件2老 |
-d | 目录 |
-S | 套结字 |
-L | 软连接 |
-e | 存在 |
-f | 普通文件 |
-b | 快设备 |
-c | 字符设备 |
[ “file” -ef “file1” ] && echo yes || echo no
文件节点号是否一致(硬链)
[ “file” -nt “file2” ] && echo yes || echo no
文件1是不是比文件2新
[ “file” -ot “file2” ] && echo yes || echo no
文件1是不是比文件2老
[ -d “file” ]&& echo yes || echo no
检测file是否为目录
[ -L “filewestos” ]&&echo yes || echo no
软连接
[ -S “filewestos” ]&&echo yes || echo no
|套结字
[ -e “filewestos” ]&&echo yes || echo no
是否存在
[ -f “filewestos” ]&&echo yes || echo no
普通文件
[ -b “/dev/sda” ]&& echo yes || echo no
字符设备
[ -c “/dev/pts/0” ]&& echo yes || echo no
字符设备
&& 符合条件作动作
|| 不符合条件作动作