Linux uniq sort 命令

linux去除重复行命令uniq

uniq干什么用的?

文本中的重复行,基本上不是我们所要的,所以就要去除掉。linux下有其他命令可以去除重复行,但是我觉得uniq还是比较方便的一个。使用uniq的时候要注意以下二点

1,对文本操作时,它一般会和sort命令进行组合使用,因为uniq 不会检查重复的行,除非它们是相邻的行。如果您想先对输入排序,使用sort -u。

2,对文本操作时,若域中为先空字符(通常包括空格以及制表符),然后非空字符,域中字符前的空字符将被跳过

语法
uniq [选项]… [文件]

从输入文件或者标准输入中筛选相邻的匹配行并写入到输出文件或标准输出。

不附加任何选项时匹配行将在首次出现处被合并。

长选项必须使用的参数对于短选项时也是必需使用的。
-c, –count //在每行前加上表示相应行目出现次数的前缀编号
-d, –repeated //只输出重复的行
-D, –all-repeated //只输出重复的行,不过有几行输出几行
-f, –skip-fields=N //-f 忽略的段数,-f 1 忽略第一段
-i, –ignore-case //不区分大小写
-s, –skip-chars=N //根-f有点像,不过-s是忽略,后面多少个字符 -s 5就忽略后面5个字符
-u, –unique //去除重复的后,全部显示出来,根mysql的distinct功能上有点像
-z, –zero-terminated //结束行为0字节,不是换行
-w, –check-chars=N //对每行第N 个字符以后的内容不作对照
–help //显示此帮助信息并退出
–version //显示版本信息并退出

linux文本文件内容加以排序命令sort

sort可针对文本文件的内容,以行为单位来排序。

语法
sort [-bcdfimMnr][-o<输出文件>][-t<分隔字符>][+<起始栏位>-<结束栏位>][–help][–verison][文件]

参数说明:

-b //忽略每行前面开始出的空格字符。
-c //检查文件是否已经按照顺序排序。
-d //排序时,处理英文字母、数字及空格字符外,忽略其他的字符。
-f //排序时,将小写字母视为大写字母。
-i //排序时,除了040至176之间的ASCII字符外,忽略其他的字符。
-m //将几个排序好的文件进行合并。
-M //将前面3个字母依照月份的缩写进行排序。
-n //依照数值的大小排序。
-o //<输出文件> 将排序后的结果存入指定的文件。
-r //以相反的顺序来排序。
-t //<分隔字符> 指定排序时所用的栏位分隔字符。
+<起始栏位>-<结束栏位> 以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。
–help //显示帮助。
–version //显示版本信息。