sortsort命令介绍uniqwcsortsort命令介绍sort命令可针对文本文件的内容,以行为单位来排序。
命令格式如下:
[root@localhost ~]# sort [选项] 文件名选项:
-f:忽略大小写。-b:忽略每行前面的空白部分。-n:以数值型进行排序,sort命令默认使用字符串型排序。-r:反向排序。-u:删除重复行。就是uniq命令。-t:指定分隔符,sort命令默认的分隔符是制表符。-k [n,m]:按照指定的字段范围排序。从第n字段开始,m字段结束(默认到行尾)。以下练习默认文本内容如下:
java haha 3python lala 77shell dudu 23hello world 12linxu xixi 61)示例1
sort命令默认是用每行开头第一个字符来进行排序的。
执行sort排序命令:
# 默认按行首字符进行排序[root@localhost tmp]# sort test.txthello world 12java haha 3linxu xixi 6python lala 77shell dudu 23如果想要反向排序,请使用-r选项:
# 反向排序[root@localhost tmp]# sort -r test.txtshell dudu 23python lala 77linxu xixi 6java haha 3hello world 122)示例2
按照文档中,每行的指定字段进行排序。
需要使用-k选项:
# -k 2,2表示:指定按照第二个字段排序# 2,2表示第2个字段开始,到第2个字段结束[root@localhost tmp]# sort -k 2,2 test.txtshell dudu 23java haha 3python lala 77hello world 12linxu xixi 6注意:文本中字段之间的分隔是制表符,默认识别。
3)示例3
按照数字进行排序,根据文本中的内容,我们需要按照第三列进行排序。
[root@localhost tmp]# sort -k 3,3 test.txthello world 12shell dudu 23java haha 3linxu xixi 6python lala 77我们发现按照第三列内容进行排序的结果,有点不正确,3和6怎么排在12的后边了。
是因为sort命令并没有把第三列的数据当作数字,默认是识别成字符串,所以是按照字符串的规则来排序的,也就是按第一位的数字进行排序的。
我们需要添加sort命令的-n选项,就可以解决上述问题了。也就是让sort命令把第三列按数值进行排序。
[root@localhost tmp]# sort -n -k 3,3 test.txtjava haha 3linxu xixi 6hello world 12shell dudu 23python lala 774)示例4
如果想要指定排序的字段,并且文本中字段间的分隔符不是制表符,这个时候就需要使用-t选项指定分隔符,并使用-k选项指定字段号。
如下面文本:
java:haha:3python:lala:77shell:dudu:23hello:world:12linxu:xixi:6需求:按文本内容中的第三列数字进行排序。
[root@localhost tmp]# sort -t ":" -n -k 3,3 test.txtjava:haha:3linxu:xixi:6hello:world:12shell:dudu:23python:lala:77uniquniq命令是用来取消重复行的命令,其实和sort -u选项是一样的。
命令格式如下:
[root@localhost ~]# uniq [选项] 文件名选项: -i:忽略大小写。练习:
student.txt文本内容如下:
ID Name Python Linux MySQL Java1 Tangs 88 87 86 85.552 Sunwk 99 98 97 96.662 Sunwk 99 98 97 96.663 Zhubj 77 76 75 74.443 Zhubj 77 76 75 74.444 Shahs 66 65 64 63.334 Shahs 66 65 64 63.33我们可以看到student.txt文本的ID为2、3、4的信息有重复。
使用uniq命令删除重复的行后,有如下输出结果:
[root@localhost tmp]# uniq student.txtID Name Python Linux MySQL Java1 Tangs 88 87 86 85.552 Sunwk 99 98 97 96.663 Zhubj 77 76 75 74.444 Shahs 66 65 64 63.33更多参考可以查看:https://www.runoob.com/linux/linux-comm-uniq.html
wcwc命令是统计文档中行数,字符数,字节数等信息。
命令格式如下:
[root@localhost ~]# wc [选项] 文件名选项: -l:只统计行数 -w:只统计单词数 -m:只统计字符数练习1:
在默认的情况下,wc命令将计算指定文件的行数、字数,以及字节数。
# 行数为5、单词数30、字节数124[root@localhost tmp]# wc student.txt 5 30 124 student.txt练习2:
查看特定的统计信息,只看行数和字节数。
# 行数为5、字节数124[root@localhost tmp]# wc -lm student.txt 5 124 student.txt练习3:
同时查看多个文件的统计信息。
[root@localhost tmp]# wc student.txt test2.txt 5 30 124 student.txt 8 37 318 test2.txt 13 67 442 总用量更多参看可以查看:https://www.runoob.com/linux/linux-comm-wc.html