sort,uniq,wc,tr

sort (选项)(参数)      sort是用来排序数据的。

以下面这个文本为例

[root@bogon ~]# cat a
123
4567
88
abc
aaa
AAA
   jk
777
777

sort默认以ASCII码表为标准,按字符从左至右的比较,最后从小到大输出

[root@bogon ~]# cat a
123
4567
88
abc
aaa
AAA
   jk
777
777

-n:按照数值的大小排序

[root@bogon ~]# sort -n a

aaa
AAA
abc
   jk
88
123
777
777
4567

-r:逆序输出

[root@bogon ~]# sort -nr a
4567
777
777
123
88
   jk
abc
AAA
aaa

 -t:指定分隔符,和-k一起使用

-k:选取哪个字段

实例以/etc/passwd为例,以“:”为分隔符,选取第5字段排序
[root@bogon ~]# head -5 /etc/passwd | sort -t: -k5 
adm:x:3:4:adm:/var/adm:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
root:x:0:0:root:/root:/bin/bash

 -u:排序后相同的内容只显示一次,行必须紧邻才能算是相同

[root@bogon ~]# sort -u a

123
4567
777
88
aaa
AAA
abc
   jk

 -f:排序时忽略大小写

[root@bogon ~]# sort -fu a

123
4567
777
88
aaa
abc
   jk

------------------------------------------------------------------------------------------------------------

uniq (选项)(参数)  相当于 sort -u,同样,相同行必须紧邻才算相同。

-c:显示文件中相同的行重复的次数

[root@bogon ~]# uniq -c a
      1 123
      1 4567
      1 88
      1 abc
      1 aaa
      1 AAA
      1    jk
      2 777
      1 

 -d只显示文件中相同的行:

[root@bogon ~]# uniq -d a
777

------------------------------------------------------------------------------------------------------------

wc (选项)(参数) 文本统计命令,可以统计文本的行数,单词数,字符数

默认

[root@bogon ~]# wc a
10  9 39 a
10行9个单词39个字符,空格也算是字符

 -l:只显示行数

[root@bogon ~]# wc -l a
10 a

 -w:只显示单词数

[root@bogon ~]# wc -w a
9 a

 -c或-m:只显示字符数

[root@bogon ~]# wc -c a
39 a
[root@bogon ~]# wc -m a
39 a

 -L:显示最长的一行中有多少个字符

[root@bogon ~]# wc -L a
5 a

------------------------------------------------------------------------------------------------------------

tr (选项)(参数):   tr可以做字符串转换一类的事情,但是tr需要输入重定向或管道流才能使用

默认情况下可以做替换或者大小写转换等

[root@bogon ~]# cat a | tr 'a' 'A'
123
4567
88
Abc
AAA
AAA
   jk
777
777

 -c:将没有比配到的字符都变成另一个字符

[root@bogon ~]# cat a | tr -c '77' 'x'
xxxxxxx7xxxxxxxxxxxxxxxxxxxxxx777x777xx[root@bogon ~]# 

 -d:将匹配到的字符都删除

[root@bogon ~]# cat a | tr -d '77' 
123
456
88
abc
aaa
AAA
   jk

 -s:将匹配到的字符,重复的都显示一次

[root@bogon ~]# cat a | tr -s '77' 
123
4567
88
abc
aaa
AAA
   jk
7
7

 还可以使用的一些字符集

[:alnum:]:字母和数字
[:alpha:]:字母
[:cntrl:]:控制CTRL字符
[:digit:]:数字
[:graph:]:图形字符
[:lower:]:小写字母
[:print:]:可打印字符
[:punct:]:标点符号
[:space:]:空白字符
[:upper:]:大写字母
[:xdigit:]:十六进制字符
初学linux,每学到一点东西就写一点,如有不对的地方,恳请包涵!
原文地址:https://www.cnblogs.com/forlive/p/8118452.html