shell脚本教学(二)——diff、rename、cut、sort、unip

这篇博客介绍了Linux shell脚本中的几个实用工具:批量重命名文件用到的`rename`命令,文件内容比较的`diff`与`patch`,截取文件内容的`cut`,以及排序与字符处理的`sort`和`unip`。通过实例演示了如何使用这些命令,包括批量移动并重命名`.conf`文件,以及脚本备份和文件内容的比较与合并。

1.批量重命名——rename

使用方法:

rename  参数1  参数2  参数3

参数1:被替换的字符串
参数2:替换成的字符串
参数3:匹配要替换的文件模式
替换多个字符——【*】

脚本练习题:查找/etc下以【.conf】结尾的文件,将他们移动到/mnt,并命名为【.conf.月-日】,如:text.conf----->text.conf.3-14

参考脚本1:
在这里插入图片描述
执行前后对比:
在这里插入图片描述
上述脚本内容看起来看起来有点略微有些僵硬,我们可以换一个思路,利用find命令试试

参考脚本2
在这里插入图片描述
执行结果:(这一次比上一次好一点的是它把目录也复制过来并做了重命名;不过仍然很僵硬;随着后面知识的提升再慢慢更改吧)
在这里插入图片描述

脚本练习题:在后面我们每天都需要编写脚本,这些脚本需要保存下来以供复习,因此结合Linux所学,将每天写的脚本在晚上12点整自动备份到/creat中【目录自建】,文件名要求:text.sh ----->text_当天日期.sh

2.diff与patch

1)diff命令常用来比较文件的内容

操作演示:
在这里插入图片描述
上图相关参数解释:3c3

左3为第一个文件的第3行
右3为第二个文件的第3行
a 表示添加 --add
d 表示删除 --delete
c 表示更改 --change
< 表示第一个文件的内容
表示第二个文件的内容

比较结果:更改第一个文件第三行内容如第二个文件第三行,文件内容就相同了

diff常用参数:
在这里插入图片描述

2)patch

作用:添加补丁,实质上就是将两个文件的内容不重复的合并成一个文件

首先需要安装相关软件

yum install patch -y

示例:

diff -u text text1 > text.path 	##将不同处重定向到text.path(补丁)

patch -b text text.path	## 将补丁输入源文件text,-b保留源文件 >> 一般保险起见,都会加-b保留源文件

在这里插入图片描述

3.cut

通常用来截取文件内容的某些部分

常用参数
-d         ##指定分割符
		常用 -d :(冒号) 或 " "(空格)
-f         ##指定截取的列
		常用 -f 1 | 1,3 | 1-3
-c         ##指定截取的字符位置
		常用 -c 1 | 1-5

示例:查找能登陆系统的用户

以冒号为分隔符截取第一列
在这里插入图片描述
练习:截取本机IP

ifconfig | grep "inet 17" | cut -d " " -f 10

在这里插入图片描述

4.sort和unip

sort 命令常用来排序
unip命令对字符作相应的处理

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

uniq
	-u  	## 显示唯一的行
	-d  	## 显示重复的行
	-c  	## 每行显示一次并统计重复次数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值