Linux Shell编程——常用指令diff 、cut、sort、uniq

一、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里的内容进行纯数字排序,且只显示重复的行

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值