Linux小技巧:awk —— 获得关键字

场景:ps -aux命令后获得其中关键字

[root@localhost ~]# ps -aux | tail
root     110291  0.0  0.0      0     0 ?        S    15:53   0:00 [kworker/u256:0]
root     112248  0.0  0.0      0     0 ?        S    16:26   0:00 [kworker/0:1]
root     112602  0.0  0.0      0     0 ?        S    16:31   0:00 [kworker/0:2]
root     113477  0.1  0.0      0     0 ?        S    16:46   0:00 [kworker/0:3]
root     113488  0.0  0.0      0     0 ?        S    16:46   0:00 [kworker/u256:1]
root     114061  0.0  0.0      0     0 ?        S    16:55   0:00 [kworker/u256:2]
root     114069  0.0  0.0 107952   616 ?        S    16:55   0:00 sleep 60
root     114072  0.0  0.1 157444  1928 pts/1    R+   16:55   0:00 ps -aux
root     114073  0.0  0.0 108204   680 pts/1    R+   16:55   0:00 tail
gdm      124639  0.0  0.1 187384  2392 ?        Sl   4月30   0:00 /usr/libexec/dconf-service

这时我们需要倒数第二行最后一排的‘tail’关键字

①:获得倒数第二行

[root@localhost ~]# ps -aux | tail | grep tail
root     114137  0.0  0.0 108204   676 pts/1    S+   16:56   0:00 tail
root     114138  0.0  0.0 112724   988 pts/1    S+   16:56   0:00 grep --color=auto tail

情况并不是很符合我们的想法(最后一行不是我们需要的)

[root@localhost ~]# ps -aux | tail | grep tail |grep -v grep
root     114269  0.0  0.0 108204   676 pts/1    R+   16:58   0:00 tail

成功获得关键字一行

说明:grep命令是linux下常见的命令,用于筛选固定行所用 -v的作用是不需要的意思

②:获得‘tail’关键字

[root@localhost ~]# ps -aux | tail | grep tail |grep -v grep | awk -F' ' '{print $11}'
tail

说明:awk用于行筛选固定列所用,awk -F'空格'(以空格为标识) '{print $n}'(其中n标识第几列)

例如:

[root@localhost ~]# cat 1.txt 
/usr/libexec/dconf-service

我们需要‘usr’关键字

以‘/’为标识,usr为第二列(第一列为斜杠前的空字符)

所以

[root@localhost ~]# cat 1.txt  | awk -F'/' '{print $2}'
usr

即可获得usr关键字

完!

你可能感兴趣的:(Linux小技巧,Linux技巧篇)