1、sort行排序
如:
book@wzs:~/work/tq210/shell$ cat aa
fdafafad
aads
csfffs
39afds
Efda
%%afd
AADS
osfds
aads
*12d
sdfs
Yfds
rfdas
book@wzs:~/work/tq210/shell$ sort -f -u aa
*12d
39afds
aads
%%afd
csfffs
Efda
fdafafad
osfds
rfdas
sdfs
Yfds
其中,-f 表示忽略大小写,-u 表示去掉重复行
2、sort根据字段排序
根据第2个字段排序,如:
book@wzs:~/work/tq210/shell$ cat aa
ad:3:fds
ad:90:fds
ad:1:fds
ad:110:fds
ad:16:fds
ad:19:fds
ad:4:fds
book@wzs:~/work/tq210/shell$ sort -t: -k2 -n aa
ad:1:fds
ad:3:fds
ad:4:fds
ad:16:fds
ad:19:fds
ad:90:fds
ad:110:fds
其中,-t 后面的“:”表示以冒号作为字段分界符,如没有设定,默认是空白符,-k 后面的数字“2” 表示以第2个字段作为比较键值字段,-n 表示按照整数进行比较
3、uniq去掉重复行
重复的行必须相邻,才能检测出来,如:
book@wzs:~/work/tq210/shell$ cat aa
apples
bonana
oringe
beer
potato
beer
apples
book@wzs:~/work/tq210/shell$ uniq aa
apples
bonana
oringe
beer
potato
beer
apples
book@wzs:~/work/tq210/shell$ sort aa | uniq
apples
beer
bonana
oringe
potato
book@wzs:~/work/tq210/shell$ sort aa | uniq -c
2 apples
2 beer
1 bonana
1 oringe
1 potato
book@wzs:~/work/tq210/shell$ sort aa | uniq -d
apples
beer
book@wzs:~/work/tq210/shell$ sort aa | uniq -u
bonana
oringe
potato
用sort命先把重复的行相邻,uniq命令就可以检测到重复行
4、wc 统计文本
统计文本行数、字数、字符数,如:
book@wzs:~/work/tq210/shell$ wc aa
7 10 56 aa
book@wzs:~/work/tq210/shell$ wc -c aa
56 aa
book@wzs:~/work/tq210/shell$ wc -w aa
10 aa
book@wzs:~/work/tq210/shell$ wc -l aa
7 aa
其中,-c 表示字符数,-w 表示字数,-l 表示行数
高级应用:
book@wzs:~/work/tq210/shell$ sudo find /etc/ -iname "*.conf" | wc -l
501
book@wzs:~/work/tq210/shell$ grep bash /etc/passwd | wc -l
2
book@wzs:~/work/tq210/shell$ wc /etc/*rc
64 290 2076 /etc/bash.bashrc
77 261 3095 /etc/drirc
66 255 1721 /etc/inputrc
299 1364 8453 /etc/nanorc
126 797 4496 /etc/wgetrc
632 2967 19841 total
5、提取文档的开头和结尾
book@wzs:~/work/tq210/shell$ cat aa
apples
bonana
oringe dsd
beer
potato 23
beer $sf
apples
book@wzs:~/work/tq210/shell$ head -3 aa
apples
bonana
oringe dsd
book@wzs:~/work/tq210/shell$ tail -3 aa
potato 23
beer $sf
apples