shell脚本中常用的命令

一.diff命令

1.diff命令是用来比较两个文件或目录的不同

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

[num1,num2] [a|c|d][num3,num4]   num1,num2表示第一个文件中的行数,num3,num4表示第二个文件的行数

a表示添加---add  c表示更改----change  d表示删除---delete  <表示第一个文件中的内容,>表示第二个文件中的内容

例:2,4c2,4表示改变第一个文件的第二行和第四行才能和第二个文件相同

3.diff中常用的参数

-b或--ignore-space-change   ##不检查空格字

-B或--ignore-blank-lines     ##不检测空白行

-c    #显示全部内容,并表示不同指出

-i或--ignore-case  ###不检查大小写的不同

-p  ###若比较的文件为C语言的程序码文件时,显示差异所在的函数名称

-q或--brief  ###仅显示有无差异不显示详细信息

-r或--recursive  ##比较子目录中的文件

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

4.打补丁

diff  file file1      ###比较两文件的不同

diff -u file  file1 >file.path    ##把第一个文件与第二个文件的不同导入file.path中

yum  install  patch  安装打布丁软件

patch  file file.path  打布丁,使file于file1相同

二.Cut 命令

1.cut命令多用于字符截取

2.cut  -d  指定分隔符      cut  -f  1,7|1-7 指定截取的列          cut   -c  1,4|1-4     指定截取的字符位置

3.cut  命令       cut  -d : -f 1 passwd      ##截取passwd的第一列  分隔符时:

cut  -d  : -f  1,7  passwd  ###截取passwd的第一列和第七列 分隔符为:

cut  -d : -f 1-3 passwd  ##截取passwd的第一列到第三列

cut  -c  1-3  passwd  ##截取passwd的第一个字符到第三个字符

cut  -c  1,3  passwd   ##截取passwd的第一个字符和第三个字符

三. &&和||

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

例:  ping -c1  -w1  172.25.254.49 &> /dev/null  &&echo 172.25.254.49  is  up  ||  echo  172.25.254.49  is  down

四.sort 和uniq

1.sort多用于字符排序

sort  -n     ##纯数字排序       

 sort -r  倒叙        

       

 sort -u  去掉重复数字          

sort -o 输出到指定文件中 

sort -t   指定分隔符                 

  sort  -k 指定要排序的列

2.uniq 对重复的字符做相应的处理

uniq  -u    显示唯一的行

uniq -d   显示重复的行

uniq -c  每行显示一次并统计重复次数

五.tr是用来转换大小写的命令

tr   ‘A-Z‘  'a-z'  <file     ##把file中的字符全部都转换成小写并输出

tr   ‘a-z’  ‘A-Z‘ <file     ##把file中的字符全部都转换成大写并输出

六. test

test命令和[ ]等同

test “    B“  等同[  "    B“]

(1) A=B     ["$A"="$B"]     ["$A"eq"$B"]       ["$a"="$b"]&&echo  yes  ||  echo  no   test  "$a" = "$b" && echo yes  || echo  no

(2)A!=B

["$A"!="$B"]   ["$A" -ne "$B"]

(3)A<=B

["$A"-le"$B"]

(4)a<b

["$a"-lt"$b"]

(5)a>b

["$a"-gt"$b"]

(6)a>=b

["$a"-ge"$b"]

(7)a!=b且a>b

["$a" -ne"$b" -a "$a"-gt "$b"]

(8)a!=b或a>b

["$a" -ne"$b" -o"$a"-gt "$b"]

(9)判断a是空

[-z "$A"]

(10)判断a不为空

[-n "$a"]

(11)判断两个文件为硬链接

["file1" -ef "file2"]

[ "/mnt/file1" -ef "/mnt/file2" ] && echo yes || echo no

(12)判断file1比file2时间早

["file1" -nt "file2"]

["/mnt/file1" -nt "/mnt/file2"] && echo yes || echo no

(13)判断file1比file2时间迟

"file1" -ot"file2"]

["/mnt/file1" --ot "/mnt/file2"] && echo yes || echo no

(14)判断文件是否存在

[-e "file"]                                                 [-e "file"]&&echo yes  || echo no

(15)判断文件是否为普通文件

[-f "file"]

(16)判断改文件是否为套接字

[-S  "file"]

(17)判断改文件是否为块设备 

[-b "file"]

(18)判断该文件是否为目录

[-d  "file"]

(19)判断该文件是否为字符设备

[-c "file"]                                            

猜你喜欢

转载自blog.csdn.net/weixin_42709236/article/details/81939530