linux-文件常用操作命令,sort,wc,uniq,join,paste

 

sort命令-排序命令

sort这命令主要用于排序

 

 

使用格式:

建议配合选项来看

sort [-t分隔符] [-kn1,n2] [-nru]

 

 

常用选项:

-n:使用“纯数字”进行排序(默认是以字母顺序来排序),依照数值的大小排序

-r:反向排序,以相反的顺序来排序

-u:就是uniq,相同的数据中,仅出现一行代表

-t:分隔符,默认是用[tab]键来分隔

     <分隔字符>:指定排序时所用的栏位分隔字符; + <起始栏位> - <结束栏位>:以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位

-k:以那个区间(field)来进行排序的意思

 

剩下的选项:

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

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

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

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

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

-m:将几个排序号的文件进行合并;

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

-o <输出文件>:将排序后的结果存入制定的文件;

 

 

实例

 

使用sort对passwd文件进行排序,最简单的方式

没有指任何的参数,所以默认以英文字母顺序排序

cat /etc/passwd | sort

 

 

使用sort对passwd文件进行排序,以第三列数字顺序进行排序

通过指定分隔符“:”,指定对应的列进行排序,

k3是表示以“:”作为分隔符的第三列进行排序

由于第三列都是数字组成,需要添加“-n”参数

cat /etc/passwd | sort -t':' -k3 -n

 

 

 

============================================================================

============================================================================

============================================================================

 

 

 

uniq命令-重复检测命令

unziq命令主要用于检查及删除文本文件中重复出现的行,一般是与sort结合使用

 

常用选项:

-c / --count:在每列旁边显示该行重复出现的次数,显示输出中,在每行行首加上本行在文件中出现的次数

-d / --repeated:仅显示重复出现的列,即出现次数>=2的行,且只打印一次

-u / --unique:仅显示不重复的行,只显示唯一的行,即出现次数等于1的行

 

剩下的选项:

-D/--all-repeated[=delimit-method]:仅显示重复的行,即出现次数>=2的行,且打印重复行的所有行。其中delimit-method表示对重复行集合的分隔方式,有三种取值,分别为none、prepend和separate。其中none表示不进行分隔,为默认选项,uniq -D等同于uniq --all-repeated=none;prepend表示在每一个重复行集合前面插入一个空行;separate表示在每个重复行集合间插入一个空行。

-f / --skip-fields=N:忽略前N个字段。字段由空白字符(空格符、Tab)分隔。如果您的文档的行被编号,并且您希望比较行中除行号之外的所有内容。如果指定了选项-f 1,

       那么下面相邻的两行:

              1 这是一条线。

              2 这是一条线。

                 将被认为是相同的。如果没有指定-f选项,它们将被认为是唯一的

-i / --ignore-case:忽略大小写字符的不同

-s / --skip-chars=N:跳过前面N个字符不比较

-w / --check-chars=N:指定每行要比较的前N个字符数

--help:显示帮助信息

--version:显示版本信息

 

 

实例:

 

uniq的单独使用

uniq只能删除相邻的重复行,如果不是相邻的重复行,就无法单独使用uniq使用

 

使用uniq删除unip文件中的重复行

uniq unip

也可以使用-c参数来统计重复行出现的次数

uniq unip -c

 

 

uniq加sort使用

如果想要删除不相邻的重复行,就要使用sort先进行排序,让不相邻的行,变成相邻的

 

删除unip文件中所有的重复行后输出

sort unip | uniq

可以加上-d参数,只显示重复的行

sort unip | uniq -d

 

 

 

============================================================================

============================================================================

============================================================================

 

 

 

join命令

join命令用于将两个文件中,指定列中内容相同的行连接起来,

找出两个文件中,指定列内容相同的行,加以合并,在输出

 

常用选项:

-t:join默认以空格符分隔数据,并且对比第一个字段的数据,如果两个文件相同,则将两笔数据联成一行,并第一个字段放在行首

-i:忽略大小写的差异

-1:这个是数据的1,代表第一个文件要用那个字段来分析的意思

-2:这个是数据的2,代表第二个文件要用那个字段来分析的意思

 

其它选项:

-a<1或2>:除了显示原来的输出内容之外,还显示指令文件中没有相同栏位的行。

-e<字符串>:若[文件1]与[文件2]中找不到指定的栏位,则在输出中填入选项中的字符串。

-i / --igore-case:比较栏位内容时,忽略大小写的差异。

-o<格式>:按照指定的格式来显示结果。

-v<1或2>:跟-a相同,但是只显示文件中没有相同栏位的行。

--help:显示帮助。

--version:显示版本信息。

 

 

实例:

 

 

 

 

 

 

 

 

发表评论:

共有 0 条评论

 Top