一、sort命令
sort命令,顾名思义是用来排序的。从文件或者标准输入读取内容,然后对每一行的指定内容按指定规则排序。
常用的参数有:
-b :忽略前面的空白区域; -f :忽略大小写的差异,例如视D和d的优先级一样; -n :根据字符串数值大小比较(默认按字符串字符大小排序); -r :逆序输出排序结果; -c:检查是否已经排序,若已排序则无输出,否则提示无序; -t :使用指定的分隔符代替非空格到空格的转换; -k<m[,n]> :配合-t使用,指定比较范围,在位置m开始一个key,在位置n终止(默认为行尾); -u : 即uniq,如果多个相同的数据,则只显示一行。
应用实例:将Linux密码文件passwd前10行先输出,然后按GID(每行第二个冒号后的数字)分别正序排序和逆序排序。
trevor@trevor-PC:~/linux/linux100$ cat /etc/passwd | head root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh sys:x:3:3:sys:/dev:/bin/sh sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/bin/sh man:x:6:12:man:/var/cache/man:/bin/sh lp:x:7:7:lp:/var/spool/lpd:/bin/sh mail:x:8:8:mail:/var/mail:/bin/sh news:x:9:9:news:/var/spool/news:/bin/sh trevor@trevor-PC:~/linux/linux100$ cat /etc/passwd | head | sort -t: -k4 -n root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh sys:x:3:3:sys:/dev:/bin/sh lp:x:7:7:lp:/var/spool/lpd:/bin/sh mail:x:8:8:mail:/var/mail:/bin/sh news:x:9:9:news:/var/spool/news:/bin/sh man:x:6:12:man:/var/cache/man:/bin/sh games:x:5:60:games:/usr/games:/bin/sh sync:x:4:65534:sync:/bin:/bin/sync trevor@trevor-PC:~/linux/linux100$ cat /etc/passwd | head | sort -t: -k4 -nr sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/bin/sh man:x:6:12:man:/var/cache/man:/bin/sh news:x:9:9:news:/var/spool/news:/bin/sh mail:x:8:8:mail:/var/mail:/bin/sh lp:x:7:7:lp:/var/spool/lpd:/bin/sh sys:x:3:3:sys:/dev:/bin/sh bin:x:2:2:bin:/bin:/bin/sh daemon:x:1:1:daemon:/usr/sbin:/bin/sh root:x:0:0:root:/root:/bin/bash trevor@trevor-PC:~/linux/linux100$
二、wc命令
wc命令从文件或者标准输入读取内容,主要统计行数、单词数和字节数,如果文件数量大于一,还将另起一行统计总量。以空白符分割且长度不为空的连续字符串被视为一个单词。
常用的参数有:
-c:统计字节数 -m:统计字符数 -l:统计行数 -L:统计最长行的长度(字节长度) -w:统计单词数
应用实例:统计test_wc文件中的行数、单词数和字节数等信息。
trevor@trevor-PC:~/linux/linux100$ cat test_wc Linux 操作系统 123 56 9abcd f trevor@trevor-PC:~/linux/linux100$ wc test_wc -c 35 test_wc trevor@trevor-PC:~/linux/linux100$ wc test_wc -m 27 test_wc trevor@trevor-PC:~/linux/linux100$ wc test_wc -l 2 test_wc trevor@trevor-PC:~/linux/linux100$ wc test_wc -L 15 test_wc trevor@trevor-PC:~/linux/linux100$ wc test_wc -w 6 test_wc trevor@trevor-PC:~/linux/linux100$ wc test_wc 2 6 35 test_wc trevor@trevor-PC:~/linux/linux100$ cat test_wc | wc 2 6 35 trevor@trevor-PC:~/linux/linux100$
三、uniq命令
uniq命令从文件或者标准输入读取内容,从中筛选相邻的匹配行,对于那些连续重复的行只显示一次。
常用的参数有:
-c:在每行先前面加上表示相应行出现次数的前缀编号; -d:只输出连续出现的行; -u:只输出没有连续出现的行; -f<m>:忽略每行的前m个字段; -s<n>:忽略开始字段(默认是第1个字段,如果调用了参数-f<m>,则是第m+1个字段)的前n个字符; -w<k>:忽略每行第k个字符以后的内容。
应用实例:统计登陆过计算机的所有用户的登陆次数以及用户数,并尝试不排序情况下uniq命令的执行效果。
trevor@trevor-PC:~/linux/linux100$ last | cut -d ' ' -sf1 | sort | uniq -c 12 reboot 2 root 35 trevor 1 wtmp trevor@trevor-PC:~/linux/linux100$ last | cut -d ' ' -sf1 | sort | uniq | wc -l 4 trevor@trevor-PC:~/linux/linux100$ last | cut -d ' ' -sf1 | uniq -c 1 trevor 2 root 7 trevor 1 reboot 2 trevor 1 reboot 7 trevor 1 reboot 1 trevor 1 reboot 4 trevor 1 reboot 1 trevor 1 reboot 1 trevor 2 reboot 8 trevor 1 reboot 1 trevor 1 reboot 1 trevor 1 reboot 1 trevor 1 reboot 1 wtmp trevor@trevor-PC:~/linux/linux100$
除非注明,文章均为CppLive 编程在线原创,转载请注明出处,谢谢。