shell编程教学(二)|常用命令-----rename | diff,patch | cut | sort,uniq

一、批量重命名----rename

格式:rename 参数1 参数2 参数3

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

示例:

将/mnt下 的所有文件名.conf后加上.02-06(如:.conf.02-06)
[root@allen mnt]# rename ".conf" ".conf.02-26" *

二、diff和patch

diff通常比较文件的内容,patch常用来打补丁

diff text text1      >> text与text1比较不同

#解释示例
diff num1 a|d|c num2    >> num1为第一个文件的第一行
                     	>> num2为第二个文件的第二行
                     	>> a 表示添加 --add
                     	>> d 表示删除 --delete
                     	>> c 表示更改 --change
<  表示第一个文件的内容
>  表示第二个文件的内容
---  分割线

示例:
在这里插入图片描述

diff常用参数

-b  	>> 不检查空格字符的不同
-B  	>> 不检查空白行
-c  	>> 显示全部内文,并标出不同之处
-i  	>> 不检查大小写的不同
-p  	>> 若比较的文件为c语言的程序代码文件时,显示差异所在的函数名称
-q  	>> 仅显示有无差异,不显示详细的信息
-r  	>> 比较子目录中的文件
-u  	>> 以合并的方式来显示文件内容的不同

patch

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

yum install patch -y   		        >> 安装补丁软件

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

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

在这里插入图片描述

三、cut

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

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

示例:

查找能登陆系统的用户
在这里插入图片描述
显然,-d和-f经常组合使用
在这里插入图片描述
-c结合实际使用,显然用在这不太合适,为了表达效果,就先不管那么多啦

四、sort和uniq

sort命令通常用来排序
uniq命令对重复字符做相应的处理

sort
	-n  	>> 纯数字排序  
	-r  	>> 倒序
	-u  	>> 去掉重复数字
	-o  	>> 输出到指定文件中
	-t  	>> 指定分割符
	-k  	>> 指定要排序的列
uniq
	-u  	>> 显示唯一的行
	-d  	>> 显示重复的行
	-c  	>> 每行显示一次并统计重复次数

示例:
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44297303/article/details/88128332
今日推荐