文章目录
一、cut
cut:列截取工具
选项
b | 按字节截取 |
---|---|
c | 按字符截取,常用于中文 |
d | 指定分割符截取,默认为空格和制表符 |
f | 通常和-d一起 ,选择列 |
示例
1.截取系统中前十个用户名
[root@localhost ~]# cat /etc/passwd | head | cut -d ":" -f 1
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
operator
[root@localhost ~]#
2.截取文件中的每列第一个字节
[root@localhost ~]# cat /etc/passwd | head | cut -b 1
r
b
d
a
l
s
s
h
m
o
[root@localhost ~]#
二、sort
sort:排序工具
常用选项
t | 指定分隔符,默认使用[Tab]键或空格分隔 |
---|---|
k | 指定排序区域,哪个区间排序 |
n | 按照数字进行排序,默认是以文字形式排序 |
u | 等同于 uniq,表示相同的数据仅显示一行,注意:如果行尾有空格去重就不成功 |
r | 反向排序,默认是升序,-r就是降序 |
o | 将排序后的结果转存至指定文件 |
示例
1.不加任何选项默认按第一列升序,字母的话就是从a到z由上而下显示
[root@localhost ~]# cat /etc/passwd | head -n 5| cut -d ":" -f 1,3 | sort
adm:3
bin:1
daemon:2
lp:4
root:0
2 以冒号为分隔符,以数字大小对第二列排序(降序)
[root@localhost ~]# cat /etc/passwd | head -n 5| cut -d ":" -f 1,3 | sort -nr -t: -k2
lp:4
adm:3
daemon:2
bin:1
root:0
[root@localhost ~]#
三、uniq
uniq:去重工具
通常和sort结合使用先排序使之变成连续的行再执行去重操作,否则不连续的重复行他不能去重
常用选项
c | 对重复的行进行计数 |
---|---|
d | 仅显示重复行 |
u | 仅显示出现一次的行 |
示例
1.去除连续的重复行
[root@localhost ~]# cat test
aaa
bbb
bbb
ccc
ddd
ddd
abc
abc
ddd
abc
[root@localhost ~]# uniq test
aaa
bbb
ccc
ddd
abc
ddd
abc
[root@localhost ~]#
2.统计重复行的次数,不连续的重复行他不算做重复行
[root@localhost ~]# uniq -c test
1 aaa
2 bbb
1 ccc
2 ddd
2 abc
1 ddd
1 abc
[root@localhost ~]#
3.结合sort使用,去重(相当于 sort -u)
[root@localhost ~]# sort test | uniq
aaa
abc
bbb
ccc
ddd
[root@localhost ~]#
四、tr
tr:字符去重工具
它可以用一个字符来替换另一个字符,或者可以完全除去一些字符,也可以用它来除去重复字符
常用选项
d | 删除字符 |
---|---|
s | 删除所有重复出现的字符,只保留第一个 |
示例
1.替换a为A
[root@localhost ~]# cat test | tr 'a' 'A'
AAA
bbb
bbb
ccc
ddd
ddd
Abc
Abc
ddd
Abc
[root@localhost ~]#
2.删除所有a
[root@localhost ~]# cat test | tr -d 'a'
bbb
bbb
ccc
ddd
ddd
bc
bc
ddd
bc
[root@localhost ~]#
3.对a去重
[root@localhost ~]# cat test | tr -s 'a'
a
bbb
bbb
ccc
ddd
ddd
abc
abc
ddd
abc
[root@localhost ~]#