awk常用命令总结

awk工具,主要将一行分成“字段”来处理。

awk '条件类型1{动作1} 条件类型2{动作2}...‘ filename

awk主要是处理每一行的字段内的数据,而默认的字段的分隔符为空格键或[tab]键

last -n 4 | awk '{ print $1 "\t" $3}'

变量$0代表一整行数据的意思

awk是以行尾一次处理的单位,而以字段尾最小的处理单位

变量NF 代表每一行($0)拥有的字段总数

变量NR 代表目前awk所处理的是“第几行”数据

变量FS 代表目前的分割字符,默认是空格键

last -n 4 | awk '{print $1 "\t lines: " NR "\t columes: " NF}'  在awk内的NR,NF等变量要大写,且不需要 $ 啦。

逻辑判断:

cat /etc/passwd | awk '{FS=":"} $3 < 10 {print $1 "\t" $3}'   查阅第三列小于10的数据,同时列出第一字段和第三字段。但是第一行会显示不如我们所想。

cat /etc/passwd | awk 'BEGIN {FS=":"} $3 < 10 {print $1 "\t" $3}' 可以让第一行也如我们所要求

cat pay.txt | awk 'NR==1 {printf "%10s %10s %10s %10s %10s\n", $1,$2,$3,$4,"Total"} NR>=2 {total = $2 + $3 + $4 printf "%10s %10d %10d %10d %10.2f\n", $1,$2,$3,$4, total}'   在awk中,变量可以直接使用,不需要加$符号。

posted @ 2016-07-10 23:02  tcgoshawk  阅读(1564)  评论(0编辑  收藏  举报