首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

linux sort,uniq,comm cat 排序有关命令

2012-06-30 
linux sort,uniq,comm cat 排序相关命令sort??命令解释:功能说明:将文本文件内容加以排序。语法:sort -u [f

linux sort,uniq,comm cat 排序相关命令

sort??命令解释:

功能说明:将文本文件内容加以排序。

语法:sort -u [file] ?= ?sort [file] | uniq (去重)

参数说明

-b 忽略每行前面开始出的空格字符

-c 检查文件是否已经按照顺序排序

-d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符

-f? 排序时,将小写字母视为大写字母

-l??排序时,除了040至176之间的ASCII字符外,忽略其他的字符

-m 将几个排序好的文件进行合并

-M 将前面3个字符依照月份的缩写进行排序

-n 依照数值的大小排序

-o<输出文件> 讲排序后的结果存入指定的文件

-r 以相反的顺序来排序

-t<分隔字符> 指定排序时所用的栏位分割字符

+<起始栏位>-<结束栏位> 以指定的栏位来排序,范围由起始兰位到结束栏位的前一栏位

--help 显示帮助

--version 显示版本信息

-u 对排序后认为相同的行只留其中一行

uniq??命令解释:

功能说明:检查及删除文本文件中重复出现的行列。

语法:uniq[选项] 文件

?

最重要参数:??默认(去重)? |? -d(显重)?? |???-u(删重)

参数

-c或--count 在每列旁边显示该行重复出现的次数

-d或--repeat 仅显示重复出现的行列

-f<栏位>或--skip-fields=<栏位> 忽略比较指定的栏位

-s<字符位置>或--skip-chars=<字符位置> 忽略比较指定的字符

-u或--unique 仅显示出一次的行列

-w<字符位置>或--check-chars<字符位置> 指定要比较的字符

--help 帮助信息

--version 版本信息?

comm??命令详解:

功能说明:比较两个已排序的文件

?

语法: comm [-123][--help][--version][第一个文件][第二个文件]

补充说明:这项指令会一列列的比较两个已排序文件的差异,并将其结果显示出来。如果没有指定任何参数,则会把结果分成3行显示,第1行是仅在第一个文件中出现的列,第2行是仅在第二个文件中出现过的列,第3行则是在两个文件中都出现过的列。若给予的文件名称是"-",则comm指令会从标准输入设备中读取数据。

?

参数

-1 不显示在第1个文件中出现的列

-2 不显示在第2个文件中出现的列

-3 不显示只在第1或第2个文件中出现的列

选项1 2和3抑制相应的列显示,例如

comm -12 显示两个文件中都出现的行

comm -23 显示在第1个文件出现,而不是在第2个文件出现的行

comm -123 什么都不显示

注意

uniq??和? comm?命令需要使用已经排序好的内容才有意义。

注意文件格式要为unix?

一些例子:

第一:两个文件的交集,并集

前提条件:两个文件不得有重复的行(即两个文件都要去重)

1. 取出两个文件的并集 cat file1 file2 | sort | uniq >file3

2. 取出两个文件的交集 cat file1 file2 | sort | uniq -d >file3

3. 删除交集 cat file1 file2 | sort |uniq -u <file3

第二:两个文件合并

1. 一个在上一个在下 cat file1 files2 >file3

2. 一个在左一个在右 paste file1 file2 >file3

第三:一个文件去掉重复行

1.? sort file | uniq 把重复的行合并为一行

2.? sort file | uniq -u 把重复的行删除,仅保留非重复的行

?

转自:http://blog.csdn.net/xwhself/article/details/6118722

?

热点排行