LINUX系统下的shell命令---diff、cut、sort、uniq等
-b 不检查空格字符的不同
-B 不检查空白行
-c 显示全部内容,并标出不同之处
-i 不检查大小写的不同
-p 若比较的文件为C语言程序码时,显示差异所在的函数名称
-q 仅显示有无差异,不显示详细的信息
-r 比较子目录中的文件(对多级目录进行比较)
-u 以合并的方式来显示文件内容的不同
例1:对空白字符进行检查,file1后面有空格
例2:显示全部内容,并标出不同
补充: patch 修复文件(patch用补丁来修复文件。当文件改变的内容少的时候,不需要重新生成文件,只需要找到新旧文件的不同,然后修改不同。)
1. 首先进行软件的安装:
2. 生成补丁:
3. 对旧文件进行恢复:(修复之后,旧文件的内容改变称新文件的内容)
2)cut:对字符进行裁剪
-d 指定分隔符
-f 1,7|1-7|1 指定截取的列(1,7表示截取的第一和第七列;1-7表示截取的时第一到七列)
-c 1,3|1-4 指定截取的字符位置
-b 以字节为单位进行分割
-n 取消分割多字节字符
示例1:cut -d : -f 1 /etc/passwd ## 指定分隔符,并显示第一列的/passwd的内容
示例2:cut -c 1-4 /etc/passwd ##截取/etc/passwd/文件中第1到4个字符
3) sort:对文件中内容进行排序
-n 纯数字排序
-r 倒叙
-u 去掉重复数字
-o 输出到指定文件中
-t 指定分隔符
-k 指定要排序的列
4)uniq:对重复字符的处理
-u 显示结果不含重复字符
-d 显示重复字符
-c 进行重复字符的计算
5)&&和||
&& 用来执行条件成立后的命令
|| 用来执行条件不成立后执行的命令
6)test 命令和[]等同
格式:[ "$a" = "$b" ] && echo yes || echo no ##当a等于b时,输出yes,否则为no
= ##a等b != ##a不等于b -eq ##等于 -nq ##不等于
-gt ##大于 -ge ##大于等于 -le ##小于等于 -lt ##小于
格式:[ "$a" -gt "5" -a|-o "$a" -le "10" ] && echo yes || echo no ##当a大于5,小于等于10时,输出yes,否则为no
-a ##并且 -o ##或者
格式:[ -z|-n "file|变量"]&&echo yes ||echo no ##文件file或变量内容是否为空,空输出yes,否则为no
-z ##等于0 -n ##不等于0
格式:[ "file1" -ef "file2" ]&&echo yes ||echo no ##两文件相等,输出yes,否则为no
-ef ##两个文件是否相等 -ot ##file1是否比file2旧 -nt ##file1是否比file2新
格式:[ -e "file" ]&&echo yes ||echo no ##判断file是否在系统中存在,存在yes,不存在no
-f 是否为文件
-L 是否为连接
-S 是否为套接字
-b 是否为块设备
-d 是否为目录
-c 是否为字符设备
7)tr:进行大小写字母的转换
示例:tr 'a-z' 'A-Z' < aa ##将文件中的内容进行小写到大写字母的转换并进行输入(不会改变文件里面的内容)