awk格式
awk [options] BEGIN 'scripts' END file
变量定义
注意:
1.\t:使用时使用“”;
2.使用变量要加-v,变量可以内部使用
#输出时中间加变量
root:~# awk -v FS=: '/^s/{print $1,FS,FS $3}' /etc/passwd
sys : x
sync : x
systemd-network : x
systemd-resolve : x
syslog : x
sshd : x
printf
#表示显示宽度的字符应该在%之后,同时注意自己加上换行符号“\n”,对齐方式默认为右对齐
root:~# awk -v FS=: '/nologin/{printf "%20s%30s\n", $1,$7}' /etc/passwd
daemon /usr/sbin/nologin
bin /usr/sbin/nologin
sys /usr/sbin/nologin
games /usr/sbin/nologin
操作符
#“~”表示模式匹配,部分匹配即可
root:~# awk -v FS=: '$1 ~ /sy/{printf "%20s%30s\n", $1,$7}' /etc/passwd
sys /usr/sbin/nologin
sync /bin/sync
systemd-network /usr/sbin/nologin
systemd-resolve /usr/sbin/nologin
syslog /usr/sbin/nologin
# i=1没有action,1不为0,即默认为打印$0
root:~# head /etc/passwd | awk -v FS=: 'i=1'
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync