8.11-sort_wc_uniq命令

sort 命令
sort 命令用做排序

选项含义
-t后面跟分隔符,作用和 cut 的 -d 选项一样(几乎不用,了解)
-n表示使用纯数字排序
-r表示反向排序
-u表示去重复
-kn1,n2表示由 n1 区间排序到 n2 区间,可以只写 -kn1,即对 n1字段排序

不加任何选项
如果 sort 不加任何选项,则从首字符向右依次按 ASCII 码值进行比较,最后将它们按升序输出

[root@evan-01 ~]# sort /etc/passwd
adm:x:3:4:adm:/var/adm:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
evan1:x:1000:1000::/home/evan1:/bin/bash
evan2:x:1001:1001::/home/evan2:/bin/bash
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
halt:x:7:0:halt:/sbin:/sbin/halt
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
polkitd:x:999:997:User for polkitd:/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
root:x:0:0:root:/root:/bin/bash
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
user1:x:1002:1002::/home/user1:/bin/bash
user2:x:1004:1005::/home/user2:/bin/bash
user3:x:1006:1005::/home/user3:/sbin/nologin
user4:x:1007:1007::/home/user4:/bin/bash
[root@evan-01 ~]#

ASCII 码排序

[root@evan-01 ~]# head /etc/passwd >> 1.txt
[root@evan-01 ~]# vi 1.txt

编辑
在这里插入图片描述

[root@evan-01 ~]# sort 1.txt
<
>
]
{
1.txt
222222111
2222222222abdadmbabd
223333333
22aaaa
2.txt
8746674cjascn
*abscbblvlh
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
halt:x:7:0:halt:/sbin:/sbin/halt
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
root:x:0:0:root:/root:/bin/bash
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
sync:x:5:0:sync:/sbin:/bin/sync
[root@evan-01 ~]#

-n 使用纯数字排序
字母和特殊符号都被认为是 0,所以都排在了前面

[root@evan-01 ~]# sort -n 1.txt
<
>
]
{
*abscbblvlh
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
halt:x:7:0:halt:/sbin:/sbin/halt
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
root:x:0:0:root:/root:/bin/bash
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
sync:x:5:0:sync:/sbin:/bin/sync
1.txt
2.txt
22aaaa
8746674cjascn
222222111
223333333
2222222222abdadmbabd
[root@evan-01 ~]# 

-r 反向排序

[root@evan-01 ~]# sort -nr 1.txt
2222222222abdadmbabd
223333333
222222111
8746674cjascn
22aaaa
2.txt
1.txt
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
halt:x:7:0:halt:/sbin:/sbin/halt
daemon:x:2:2:daemon:/sbin:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
*abscbblvlh
{
]
>
<
[root@evan-01 ~]#

wc 命令
wc 命令用于统计文档的行数、字符数或词数

选项含义
-l统计行数
-m统计字符数
-w统计词数

wc 不跟任何选项,直接把行数、词数、字符数依次输出

[root@evan-01 ~]# wc 1.txt 
 22  22 479 1.txt
[root@evan-01 ~]#

-l 统计行数

[root@evan-01 ~]# wc -l 1.txt
22 1.txt
[root@evan-01 ~]#

-m 统计字符数

[root@evan-01 ~]# wc -m 1.txt
479 1.txt
[root@evan-01 ~]#

-A 查看隐藏字符
编辑一个文件,写入以下内容

[root@evan-01 ~]# vi 2.txt

在这里插入图片描述

[root@evan-01 ~]# wc -m 2.txt
8 2.txt
[root@evan-01 ~]#

明明只输入6个字符,为什么看到8个呢

[root@evan-01 ~]# cat -A 2.txt
123$
456$
[root@evan-01 ~]#

查看下隐藏字符,发现每行后面都有个$换行符,加上这2个符号就是8个了


-w 统计词数(以空格为分隔符计算)

[root@evan-01 ~]# wc -w 1.txt
22 1.txt
[root@evan-01 ~]# 

uniq 命令
uniq 命令用来删除重复的行,该命令只有 -c 选项比较常用,它表示统计重复的行数,并把行数写在前面

[root@evan-01 ~]# vi 2.txt

在这里插入图片描述

[root@evan-01 ~]# cat 2.txt
123
456
123
456
abc
1
2
1
abc
[root@evan-01 ~]# uniq 2.txt
123
456
123
456
abc
1
2
1
abc
[root@evan-01 ~]# 

使用 uniq 前,必须要先给文件排序,否则不管用


先排序,后去重

[root@evan-01 ~]# cat 2.txt
123
456
123
456
abc
1
2
1
abc
[root@evan-01 ~]# sort 2.txt
1
1
123
123
2
456
456
abc
abc
[root@evan-01 ~]#

统计重复行数

[root@evan-01 ~]# cat 2.txt
123
456
123
456
abc
1
2
1
abc
[root@evan-01 ~]# sort 2.txt | uniq -c
      2 1
      2 123
      1 2
      2 456
      2 abc
[root@evan-01 ~]# 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值