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

Posted 锦衣admin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

以上是关于shell编程之sort命令和uniq命令:数据排序去重命令的主要内容,如果未能解决你的问题,请参考以下文章

Shell编程之正则表达式

Shell编程之正则表达式

Shell之正则表达式之(sortuniqtrcutspliteval命令)

(转)Shell脚本编程--Uniq命令

走进shell之--熟练掌握编辑文本功能命令

Shell编程字符处理命令sort和wc