shell编程之sort命令和uniq命令:数据排序去重命令

shell编程之sort命令和uniq命令:数据排序去重命令

sort命令:数据排序命令

作用:复制对数据进行排序

用途:可以与uniq命令一起进行去重

sort命令说明:

命令格式:
	# sort 选项 选项的值 filename
	选项说明:
		-n :以数字排序,不加-n选项 默认是按字符排序
		-r :降序排列,不指定-r选项 默认是升序
		-k :第N列。1️以第N列的数据进行排序
		-t :分隔符
		
		-u :去除重复行
		-o : 将排序结果输出到文件中  类似 重定向符号>		
		-b :忽略前导空格。
		-R :随机排序,每次运行的结果均不同。
 
演示:
	# sort -n -t: -k3 1.txt 	=>	指定分隔符":",以第三列的数据通过数字的形式进行默认排序

	# sort -nr -t: -k3 1.txt 	=>	指定分隔符":",以第三列的数据通过数字的形式进行降序排序

	# sort -n 1.txt 		=>	按照数字排序

	# sort -nu 1.txt 		=>	按照数字排序并且去重,去除重复的行,只保留一行

	# sort -nr 1.txt 		=>	按照数字倒序排序

	# sort -nru 1.txt 		=>	按照数字倒序排序,并去除重复的行,只保留一行

	# sort -nru passwd 		=>	只按照行第一个字符是数字进行倒序排序,并去除其余不是数字开头的行

	# sort -n 1.txt -o 1.txt 		=>	按照数字排序并将结果重定向到文件

	# sort -R 1.txt 	=>	随机排序,每次运行的结果均不同

	# sort -u 1.txt 	=>	去除重复行

uniq命令:数据去重

作用:去除连续的重复行

用途:与sort命令使用对数据进行去重

sort命令和uniq命令配合使用,先用sort命令排序,然后uniq命令去重:先排序后去重

uniq命令说明:

命令格式:
	# uniq 选项 filename# sort 选项 选项的值 filename | uniq 选项 filename
		选项说明:
			-i:忽略大小写
			-c:统计重复行次数
			-d:只显示重复行,只显示上下行关系重复行
			
#l			注意:
				uniq执行去除连续重复行,如果重复的行数据不是上下行关系则去除不了
				所以通过sort先进行排序,然后在uniq去重
			

演示:
	# uniq 2.txt		=>	去除连续的重复行,不连续的去除不了
		[root@server ~]# cat 2.txt			
			22
			22
			33
			3
			33		
		[root@server ~]# uniq 2.txt			
			22
			33
			3
			33
		
	# uniq -d 2.txt			=>	只显示连续的重复行
		[root@server ~]# uniq -d 2.txt
			22

	# uniq -dc 2.txt 		=>	只统计连续的重复行出现的次数
		[root@server ~]# uniq -dc 2.txt
   		   2 22

	
	与sort命令一起使用:
		# sort -n 2.txt |uniq -dc		=>	sort命令排序后,就能统计两个连续的重复行了
			[root@server ~]# sort -n 2.txt |uniq -dc
 		   	  2 22
    		  2 33
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值