文件处理命令cut、sort、uniq傻傻分不清楚
一、cut 选取文件中的每一行的一个或多个区域打印,不影响原文件
-d:指定字段分隔符 delimiter:分隔符
-f:指定要输出的字段,多个字段之间用,(逗号)分隔 field:区域、字段
1、显示/etc/passwd文件中的用户名和uid字段
[root@server200 base]# cut -d: -f1,3 /etc/passwd
[root@server200 base]# head -5 /etc/passwd > /tmp/pass
[root@server200 base]# vim /tmp/pass
:%s/:/ /g
以空格为分隔符,取出第一个字段
[root@server200 base]# cut -d" " -f1 /tmp/pass
二、sort 排序
[root@server200 ~]# cat num.txt
111
222
333
333
333
444
222
222
555
[root@server200 ~]# sort num.txt
对/etc/passwd文件按照uid来排序
[root@server200 ~]# sort -t: -nk3 /etc/passwd
-t:指定字段分隔符
-n:按照数字顺序排
-k 数字:指定按照第几个字段排序
-r:倒序
对/etc/passwd文件按照uid由大到小的顺序排序
[root@server200 ~]# sort -t: -nrk3 /etc/passwd
三、uniq 去重 unique:唯一 去除相邻重复行
[root@server200 ~]# uniq num.txt
111
222
333
444
222
555
由于上述原因,所以我们使用uniq时候一般要先排序,再去重
[root@server200 ~]# sort num.txt | uniq
111
222
333
444
555
-c:显示重复的行的数量
[root@server200 ~]# sort num.txt | uniq -c
1 111
3 222
3 333
1 444
1 555
统计/etc/passwd文件中一共有几种shell,并且显示每种shell有几个用户。
[root@server200 ~]# cut -d: -f7 /etc/passwd | sort | uniq -c
1 /bin/bash
1 /bin/sync
1 /sbin/halt
29 /sbin/nologin
1 /sbin/shutdown
打印/root/.bash_history文件中执行次数最多的10条命令。
#head /root/.bash_history
#cut -d" " -f1 /root/.bash_history | sort | uniq -c | sort -nr | head

浙公网安备 33010602011771号