zl程序教程

您现在的位置是:首页 >  其他

当前栏目

8.11 sort_wc_uniq命令

2023-04-18 16:54:57 时间

sort命令

  • sort 命令,排序。将文件进行排序,并将排序结果标准输出
    • sort命令,默认按照ASCII码排序
    • -n 以数字排序,而其中的字符和字母都会默认为0
    • -r 反序
    • -t 分隔符
    • -kn1/-kn1,n2
[root@hf-01 ~]# sort /etc/passwd        //sort命令,默认按照ASCII码排序
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
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
[root@hf-01 ~]# head /etc/passwd >> 1.txt        //head命令,默认显示前十行
[root@hf-01 ~]# vim 1.txt        //并在文件中添加一些字符,特殊符号
[root@hf-01 ~]# sort 1.txt        //sort命令,默认按照ASCII码排序
<
{
1.txt
222111
22222222222aaaaaa
223333
22aaa
2.txt
47888888gdkgljsd
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
*dffadg
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@hf-01 ~]# 

sort命令的参数 -n

  • sort -n 1.txt中的字母和字符都默认为0
    • 所以字母和符号会排在最前面,然后是数字排序
[root@hf-01 ~]# sort -n 1.txt
<
{
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
*dffadg
halt:x:7:0:halt:/sbin:/sbin/halt
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
1.txt
2.txt
22aaa
222111
223333
47888888gdkgljsd
22222222222aaaaaa
[root@hf-01 ~]# 

sort命令的参数-r

  • sort -nr 1.txt //反序排序
    • -r表示反序
[root@hf-01 ~]# sort -nr 1.txt
22222222222aaaaaa
47888888gdkgljsd
223333
222111
22aaa
2.txt
1.txt
sync:x:5:0:sync:/sbin:/bin/sync
operator:x:11:0:operator:/root:/sbin/nologin
halt:x:7:0:halt:/sbin:/sbin/halt
*dffadg
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
{
<
[root@hf-01 ~]# 

sort命令的参数 -t

  • sort -t 分隔符

wc命令

  • wc -l 统计行数
    • -m 统计字符数 ,也会统计换行符(换行符是隐藏的)
    • -w 统计词,它是以空格、空白字符进行区分的
      • 以分号分割的也会认为是一个字符,比如111,qqq这个就会认为是一个字符
  • cat -A 显示文件中所有的字符(包括隐藏的)
[root@hf-01 ~]# wc -l 1.txt    //显示文件的行数
22 1.txt
[root@hf-01 ~]# wc -m 1.txt        //显示文件中的字符数
468 1.txt
[root@hf-01 ~]# vim 2.txt        //在文件中编写两行,6个字符
[root@hf-01 ~]# wc -m 2.txt    //在查看的时候,会显示出8个字符
8 2.txt
[root@hf-01 ~]# cat -A 2.txt        //会统计所有的字符,包括隐藏字符
123$
avd$
[root@hf-01 ~]# wc -w 2.txt        //它是以空格、空白字符进行区分的
2 2.txt

uniq命令

  • uniq 去重, 用于报告或忽略文件中的重复行。常与sort排序命令结合使用
    • -c统计行数

uniq命令去重条件:需要先排序,再去重

[root@hf-01 ~]# vim 2.txt
[root@hf-01 ~]# cat 2.txt
123
avd 112,21a
123
avd
1
2
1
[root@hf-01 ~]# uniq 2.txt
123
avd 112,21a
123
avd
1
2
1
[root@hf-01 ~]# vim 2.txt
[root@hf-01 ~]# cat 2.txt        //查看文件内容
123
avd 112,21a
123
avd
1
1
2
[root@hf-01 ~]# uniq 2.txt        //会看到在更改排序后,去重了
123
avd 112,21a
123
avd
1
2
[root@hf-01 ~]# 
  • uniq命令和sort命令结合使用
    • 先排序,再去重
[root@hf-01 ~]# sort 2.txt
1
1
123
123
2
avd
avd 112,21a
[root@hf-01 ~]# sort 2.txt |uniq
1
123
2
avd
avd 112,21a
[root@hf-01 ~]# 

uniq命令参数 -c

  • uniq -c 统计重复次数
[root@hf-01 ~]# sort 2.txt |uniq -c
      2 1
      2 123
      1 2
      1 avd
      1 avd 112,21a
[root@hf-01 ~]#