起步上台:基础命令 awk '{print $1}' break.txt awk '{print $2, $3}' break.txt awk '{printf "%08s", $1}' break.txt 脱掉外套:过滤记录 awk ' $3==0 && $6=="LISTEN" ' netstat.txt 比较运算符 == != > < >= <= awk '{print NR, $1, $2}' func.txt NR: 输出行号(已经读出的记录数,从1开始,如果有多个文件的话,这个值也是不断累加中) FNR:当前记录数(这个值会是各个文件自己的行号) awk '{print NF}' func.txt NF:当前记录中的字段个数,也就是有多少列 awk '{print NF}' func.txt 2 2 2 2 指定分隔符(字符匹配) cat /etc/passwd 如果没有分隔符,那么每一行都只有一列 awk -F: '{print NF}' /etc/passwd 用 : 作为分隔符之后,即分隔成了 7 列 awk 'BEGIN{FS=":"} {print $1, $3, $6}' /etc/passwd awk -F: '{print $1, $3, $6}' /etc/passwd 指定多个分隔符 awk -F '[;:]' 字符串匹配(grep类似匹配) awk '/root/' /etc/passwd awk '/root/' /etc/passwd root:x:0:0:root:/root:/bin/bash nm-openvpn:x:136:145:NetworkManager OpenVPN,,,:/var/lib/openvpn/chroot:/usr/sbin/nologin awk -F: '$1=="root"' /etc/passwd root:x:0:0:root:/root:/bin/bash 相关链接 https://coolshell.cn/articles/9070.html