1.awk 的语法
awk [选项] ' print $1' 文件名
选项
-F 指定分隔符
比如:
awk -F: '{ print $1 }' /etc/passwd
$NF 最后一列
NR 行数 //注意没有$
2.awk举例
1、提取出/etc/passwd 文件当中,UID小于1000的用户名信息和UID信息
[root@server0 ~]# awk -F : ' $3<1000 {print $1,$3}' /etc/passwd
2、提取出/etc/passwd文件当中,shell环境为”/bin/bash”的用户信息有shell信息
[root@server0 ~]# awk -F : ' $NF== "/bin/bash" {print $1,$NF}' /etc/passwd
3、提取出/etc/passwd文件当中,第一行到第5行的用户名相关信息
[root@server0 ~]# awk -F : ' (NR>=1&&NR<=5) {print $1}' /etc/passwd
4、打印/et/passwd奇数行
[root@server0 ~]# awk -F : '{if (NR%2!=0) print $0}' /etc/passwd
5、 打印UID不等于GID的用户名
[root@server0 ~]# awk -F : '{if ($3!=$4) print $1}' /etc/passwd
6、awk提取ip地址
[root@server0 ~]# ip addr | grep 'scope global' | awk '{print $2}'| awk -F '/' '{print $1}'
172.25.0.11
7.awk提取登录用户ip地址
[root@fengxiaoli41 ~]# who |tail -1|awk -F"[ ()]+" '{print$5}'
192.168.10.1
注:cut 也可以用提取,这是cut只有分隔比较标准的情况下使用;
-c
-d 自定义分隔符
-f 指定哪个区域
[root@server0 ~]# cat /etc/passwd | head -2 | cut -d : -f 1
本文转自 fxl风 51CTO博客,原文链接:http://blog.51cto.com/fengxiaoli/1950919