sort 工具用于排序,它将文件的每一行作为一个单位,从首字符向后,一次按ASCII码值进行比较,最后将他们按升序排列
- -u: 去除重复行
- -r: 降序排列,默认是升序
- -o: 将排序结果输出到文件中,类似重定向符号
- -n: 以数字排序,默认按字符排序
- -t: 分隔符
- -k: 第N列
- -b: 忽略前导空格
- -R: 随机排序,每次运行的结果均不同
① 对/etc/passwd 文件每一行使用冒号分隔,然后按照第三列的数字大小升序排列
[root@localhost ~]# sort -n -t: -k3 /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin ntp:x:38:38::/etc/ntp:/sbin/nologin [root@localhost ~]#
② 对/etc/passwd 文件每一行使用冒号分隔,然后按照第三列的数字大小降序排列
[root@localhost ~]# sort -rn -t: -k3 /etc/passwd ntp:x:38:38::/etc/ntp:/sbin/nologin rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin mail:x:8:12:mail:/var/spool/mail:/sbin/nologin halt:x:7:0:halt:/sbin:/sbin/halt shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown sync:x:5:0:sync:/sbin:/bin/sync lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin bin:x:1:1:bin:/bin:/sbin/nologin root:x:0:0:root:/root:/bin/bash [root@localhost ~]#
对/etc/passwd 文件每一行使用冒号分隔,然后按照第三列的数字大小升序排列,并将结果写入demo.txt文件
[root@localhost ~]# sort -n -t: -k3 /etc/passwd -o demo.txt [root@localhost ~]# cat demo.txt root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin ntp:x:38:38::/etc/ntp:/sbin/nologin [root@localhost ~]#
这里编写一个测试文件demo.txt,内容如下:
[root@localhost ~]# cat demo.txt aaa bbb ccc aaa bbb ccc
再通过-u参数可以做到去重
[root@localhost ~]# sort -u demo.txt aaa bbb ccc [root@localhost ~]#
通过-R参数可以做到每次排序都不同,即随机排序
[root@localhost ~]# sort -uR demo.txt ccc aaa bbb [root@localhost ~]# sort -uR demo.txt aaa bbb ccc [root@localhost ~]# sort -uR demo.txt aaa bbb ccc [root@localhost ~]#
因篇幅问题不能全部显示,请点此查看更多更全内容