shell中的简单命令(diff,cut,sort,uniq,test命令&& 和 ||)

本文详细介绍了Shell中的一些常用命令,包括diff的文件和目录比较,cut的字符截取,sort和uniq的排序与去重,以及逻辑操作符&&和||的用法。通过实例演示了这些命令的使用方法,帮助读者掌握在日常Linux系统管理中的操作技巧。
摘要由CSDN通过智能技术生成

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

[num1 , num2][a/c/d][num3 , num4]
nmu1,num2表示在第一个文件中的行数
a表示添加 —add
c表示更改 —change
d表示删除 —delete
<表示第一个文件中的内容,>表示第二个文件中的内容,
—表示分隔线
num3 , num4表示在第二个文件中的行数
2,4c2,4表示改变第一个文件中的第二行和第二行和第四行才能匹配第二个文件中的第二行和第四行

实验:
-1-添加

[root@desktop ~]# vim test 
[root@desktop ~]# vim test1 
[root@desktop ~]# cat test
[root@desktop ~]# cat test1
[root@desktop ~]# diff test test1

在这里插入图片描述
输出的结果表示:当给第一个文件的第一行添加123后才能匹配第二个文件的第二行
-2-删除
将比较的文件换个位置后结果也会不同

[root@desktop ~]# diff test1 test

在这里插入图片描述
输出的结果表示:当将第一个文件的第二行删除之后才能匹配第二个文件中的第一行
-3-更改

[root@desktop ~]# vim test
[root@desktop ~]# cat test
[root@desktop ~]# cat test1
[root@desktop ~]# diff test test1

在这里插入图片描述
输出的结果表示:当将第一个文件的第二行更改成第二个文件中的第二行时才能匹配第二个文件中的第二行(反向也可)
-4-布丁的使用
patch:用于文件不同文件打布丁
patch[options]file.old file.path

<1>比较test和test1中的内容(布丁中的内容)

[root@desktop ~]# diff -u test test1

在这里插入图片描述
输出的结果表示:文件内容的不同:
<2>将test1中的内容放到补丁

[root@desktop ~]# diff -u test test1 > test.path

在这里插入图片描述
<3>安装patch的,然后将test中的内容利用patch命令进行修改,继而查看test和test1的内容是相等的

[root@desktop ~]# yum install patch -y
[root@desktop ~]# patch test test.path
[root@desktop ~]# cat test
[root@desktop ~]# cat test1

在这里插入图片描述

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

Only in directory/:filename
directory表示在哪个目录中
filename表示在哪个目录

<1>单纯的diff目录westos和目录westos1,发现没有报错

[root@desktop ~]# cd /mnt
[root@desktop mnt]# mkdir westos
[root@desktop mnt]# mkdir westos1
[root@desktop mnt]# diff -r westos westos1

在这里插入图片描述
<2>在westos目录下新建一个file,再次diff时,会发现报错only in westos1:file

[root@desktop mnt]# touch westos1/file
[root@desktop mnt]# diff -r westos westos1

在这里插入图片描述

3.diff中常用的参数

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

实验:
<1>diff -b的用法

[root@desktop mnt]# vim test
[root@desktop mnt]# vim test1
[root@desktop mnt]# diff test test1
[root@desktop mnt]# diff -b test test1

在这里插入图片描述
因为两个文件内中的内容中有空格字符不同,所以使用-b参数时不会报错
<2>diff -B的用法

[root@desktop mnt]# vim test
[root@desktop mnt]# vim test1
[root@desktop mnt]# cat test
[root@desktop mnt]# cat test1
[root@desktop mnt]# diff test test1
[root@desktop mnt]# diff -B test test1

在这里插入图片描述
因为两个文件内中的内容的空白处不同,所以使用-B参数时不会报错
<5>diff-c1/c2/c3/c的用法
前提工作(在两个文件内写入不同的内容):

[root@desktop mnt]# vim test
[root@d
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值