命令 sort 文件排序,命令 wc 统计文档行数详解

命令 sort

  • 命令语法
    sort(选项)(参数)

  • 命令描述
    sort 命令它将文件进行排序,并将排序结果标准输出。

  • 命令选项
    -b:忽略每行前面开始出的空格字符;
    -c:检查文件是否已经按照顺序排序;
    -d:排序时,处理英文字母、数字及空格字符外,忽略其他的字符;
    -f:排序时,将小写字母视为大写字母;
    -i:排序时,除了 040 至 176 之间的 ASCII 字符外,忽略其他的字符;
    -n:依照数值的大小排序;
    -r:以相反的顺序来排序;
    -t< 分隔字符 >:指定排序时所用的栏位分隔字符;

  • 命令示例

  • sort 将文件 / 文本的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按 ASCII 码值进行比较,最后将他们按升序输出。

命令 sort 文件排序,命令 wc 统计文档行数详解

[root@localhost ~]# cat /etc/passwd | head -10
root❌0:0:root:/root:/bin/bash
bin❌1:1:bin:/bin:/sbin/nologin
daemon❌2:2:daemon:/sbin:/sbin/nologin
adm❌3:4:adm:/var/adm:/sbin/nologin
lp❌4:7:lp:/var/spool/lpd:/sbin/nologin
sync❌5:0:sync:/sbin:/bin/sync
shutdown❌6:0:shutdown:/sbin:/sbin/shutdown
halt❌7:0:halt:/sbin:/sbin/halt
mail❌8:12:mail:/var/spool/mail:/sbin/nologin
operator❌11:0:operator:/root:/sbin/nologin

[root@localhost ~]# sort /etc/passwd |head -10
adm❌3:4:adm:/var/adm:/sbin/nologin
bin❌1:1:bin:/bin:/sbin/nologin
chrony❌997:995::/var/lib/chrony:/sbin/nologin
daemon❌2:2:daemon:/sbin:/sbin/nologin
dbus❌81:81:System message bus:/:/sbin/nologin
dd1❌1002:1004::/home/dd1:/bin/bash
ftp❌14:50:FTP User:/var/ftp:/sbin/nologin
games❌12💯games:/usr/games:/sbin/nologin
halt❌7:0:halt:/sbin:/sbin/halt
lp❌4:7:lp:/var/spool/lpd:/sbin/nologin

  • 忽略相同行使用 -u 选项或者 uniq:(使用去重复的时候,只能去重复相邻的几行)
[root@localhost ~]# cat student
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
eeeeeeeeeeeeeeeeeeeeeeeeee
eeeeeeeeeeeeeeeeeeeeeeeeee
wqrqwerwerdsfafsdfweasdfaw
asdfsdxczzzzdgggggrrrrrwww

[root@localhost ~]# sort -u student

abcdefghijklmnopqrstuvwxyz
asdfsdxczzzzdgggggrrrrrwww
eeeeeeeeeeeeeeeeeeeeeeeeee
wqrqwerwerdsfafsdfweasdfaw

[root@localhost ~]# uniq student
abcdefghijklmnopqrstuvwxyz
eeeeeeeeeeeeeeeeeeeeeeeeee
wqrqwerwerdsfafsdfweasdfaw
asdfsdxczzzzdgggggrrrrrwww

  • sort 的 -n、-r、-k、-t 选项的使用,-n 是按照数字大小排序,-r 是以相反顺序,-k 是指定需要爱排序的栏位,-t 指定栏位分隔符为冒号
[root@localhost ~]# cat /etc/passwd | head -10    //显示前是10行
root❌0:0:root:/root:/bin/bash
bin❌1:1:bin:/bin:/sbin/nologin
daemon❌2:2:daemon:/sbin:/sbin/nologin
adm❌3:4:adm:/var/adm:/sbin/nologin
lp❌4:7:lp:/var/spool/lpd:/sbin/nologin
sync❌5:0:sync:/sbin:/bin/sync
shutdown❌6:0:shutdown:/sbin:/sbin/shutdown
halt❌7:0:halt:/sbin:/sbin/halt
mail❌8:12:mail:/var/spool/mail:/sbin/nologin
operator❌11:0:operator:/root:/sbin/nologin

[root@localhost ~]# sort -nk 3 -t: /etc/passwd |head -10    //使用-t指定分隔符为:然后-nk第3列从小到大排序
root❌0:0:root:/root:/bin/bash
bin❌1:1:bin:/bin:/sbin/nologin
daemon❌2:2:daemon:/sbin:/sbin/nologin
adm❌3:4:adm:/var/adm:/sbin/nologin
lp❌4:7:lp:/var/spool/lpd:/sbin/nologin
sync❌5:0:sync:/sbin:/bin/sync
shutdown❌6:0:shutdown:/sbin:/sbin/shutdown
halt❌7:0:halt:/sbin:/sbin/halt
mail❌8:12:mail:/var/spool/mail:/sbin/nologin
operator❌11:0:operator:/root:/sbin/nologin

[root@localhost ~]# sort -nrk 3 -t: /etc/passwd |head -10    //使用-t指定分隔符为:然后-nrk第3列从大到小排序
user11❌1011:1011::/home/user11:/bin/bash
user5❌1010:1003::/home/dd1:/sbin/nologin
user4❌1005:1003::/home/user4:/bin/bash
dd1❌1002:1004::/home/dd1:/bin/bash
user2❌1001:1002::/home/user2:/bin/bash
user1❌1000:1000::/home/user1:/bin/bash
systemd-bus-proxy❌999:997:systemd Bus Proxy:/:/sbin/nologin
polkitd❌998:996:User for polkitd:/:/sbin/nologin
chrony❌997:995::/var/lib/chrony:/sbin/nologin
systemd-network❌192:192:systemd Network Management:/:/sbin/nologin

命令 wc

  • 命令语法
    wc(选项)(参数)

  • 命令描述
    wc 命令用于统计文档的行数

  • 命令选项
    -l 统计行数
    -m 统计字符数
    -w 统计词