用户工具

站点工具


语法:awk语法速查

1. awk语法速查

1.1 基本命令格式

awk '{BEGIN{action} /pattern/  {action} END{action}}' <file>
   BEGIN{}	: 最开始执行
   //		: 正则
   {}		: 循环体
   END{}	: 最后执行

action可以是print之类的

# 打印log文件的第2,4,6行
awk '{print $2, $4, $6}' log

# printf
awk '{printf("%d, %d, %d, $2, $4, $6")}' log

# 打印匹配到root的行
awk '/root/ {print $0}' log

# 只打印第一列数据<10的行
awk '$1 < 10 {print $0}' log

1.2 分隔符

#将冒号和逗号也当作分隔符,打印log文件2,4,5列
awk -F ':|,' '{print $2, $4, $6}' log

1.3 awk内置变量

$1、$2 ... $n, 表示数据第0列

$0:表示当前整行,$1表示第一个字段,$2表示第二个字段,$n 表示第n个字段;
NR:表示当前已读的行数;
NF:表示当前行被分割的列数,NF表示最后一个字段,NF-1 表示倒数第二个字段;
FILENAME:表示当前文件的名称

# 打印行号+每行内容
awk '{print NR $0}' log

# 打印列数
awk '{print NF}' log

# 打印第一列
awk '{print $1}' log

# 打印最后一列
awk '{print $NF}' log
语法/awk语法速查.txt · 最后更改: 2024/10/12 10:56 由 user01

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki