shell脚本的常用命令(diff / patch / cut / sort / uniq / test)

######1.diff 命令######

diff 命令是用来比较两个文件或目录的不同
diff    [options]    target1    target2

###1.diff 在比较文件过程中结果读取方式###

  diff    file1   file2

[num1 , num2]  [a|c|d]  [num3,num4]
num1,num2 表示在第一个文件中的行数
a 表示添加 ----add
c 表示更改 ----change
d 表示删除 ----delete
< 第一个文件中的内容,   > 第二个文件中的内容,   --- 分割线

num3,num4 表示在第二个文件中的行数
[num]  [a|c|d]  [num]表示改变第一个文件中的第n行才能匹配第二个文件中的第n行

###2.diff 在比较目录过程中结果的读取###

  diff  -r   direcory1     directory2
Only  in  directroy/: filename
directory 表示在那个目录中,    filename 表示在这个目录

diff  -r  xxx1  xxx2    ##比较子目录中的文件

###3.diff 中常用的参数###

-b 或 --ignore-space-change          ##不检查空格字符的不同
-B 或 --ignore-blank-lines                ## 不检查空白行
-c                                                            ##显示全部内文,并标出不同之处
-i 或 --ignore-case                              ##不检查大小写的不同
-p :          ##若比较的文件为 C 语言的程序码文件时,显示差异所在的函数名称
-q 或 --brief                                          ##仅显示有无差异,不显示详细的信息
-r 或 --recursive                                  ##比较子目录中的文件
-u                                                           ##以合并的方式来显示文件内容的不同

diff -b  xxx1  xxx2  ##不检查空格字符的不同

diff  -B  xxx1  xxx2   ## 不检查空白行

diff  -c  xxx1  xxx2      ##显示全部内文,并标出不同之处

diff  -i  xxx1  xxx2   ##不检查大小写的不同
diff  -q  xxx1  xxx2   ##仅显示有无差异,不显示详细的信息

diff  -u  xxx1  xxx2     ##以合并的方式来显示文件内容的不同

######2.patch命令######

用于不同文件打补丁
patch    [options]    file.old    file.path

-b      ##备份文件

######3.cut命令######

cut 命令多用与字符截取
cut -d     ##指定分隔符
cut -f      ##指定截取的列
cut -c     ##指定截取的字符位置

######4.sort命令######

多用于字符排序
sort -n      ##纯数字排序
sort -r       ##倒序
sort -u      ##去掉重复数字
sort -o      ##输出到指定文件中
sort -t       ##指定分隔符
sort -k      ##指定要排序的列

sore  xxx   ##默认排序
(默认按第一位数字的大小排序,如果有字母,数字在字母后面排)

sort -n      ##纯数字排序

sort -r       ##倒序

sort -u      ##去掉重复数字

sort -t      ##指定分隔符
sort -k      ##指定要排序的列

 

######5.uniq命令######

对重复字符做相应的处理
uniq -u        ##显示唯一的行
uniq -d        ##显示重复的行
uniq -c        ##每行显示一次并统计重复次数


######6.&& 和 || ######

&&  用来执行条件成立后执行的命令
  ||    用来执行条件不成立后执行的命令

######7.test命令######

用于检测某个条件是否为真,可以对数值、字符、文件进行测试

test 命令和 [ ] 等同   
test "$A" == "$B" 等同 [ "$A" == "$B" ]

###1.数值###

[ "$A" = "$B" ]    [ "$A" -eq "$B" ]       ##A等于B
[ "$A" != "$B" ]   [ "$A" -ne "$B" ]       ##A不等于B



[ "$A" -le "$B" ]                                        ##A小于等于B
[ "$A" -lt "$B" ]                                         ##A小于B
["$A" -ge "$B" ]                                       ##A大于等于B
["$A" -gt "$B" ]                                        ##A大于B
["$A" -ne "$B" -a "$A" -gt "$B" ]              ##A不等于B并且A大于B
["$A" -ne "$B" -o "$A" -gt "$B" ]              ##A不等于B或者A大于B


 

###2.字符串###

[-z "$A" ]        ##为零则为真
[-n "$A" ]       ##不为零则为真

###3.文件###

["file1" -ef "file2" ]       ##file1和file2是否是同一个文件
["file1" -nt "file2" ]       ##file1比file2建立的时间晚
["file1" -ot "file2" ]       ##file1比file2建立的时间早


[-e "file" ]           ##是否存在
[-f "file" ]            ##是否为文本文件
[-L "file" ]           ##是否为链接
[-S "file" ]          ##是否为套接字
[-b "file" ]          ##是否为块设备
[-d "file" ]          ##是否为目录
[-c "file" ]          ##是否为字符设备

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值