awk基础

Posted ZECDLLG

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了awk基础相关的知识,希望对你有一定的参考价值。

awk的
1工作模式:
以空白为分隔符 分为一个一个字段
读取一行 执行命令
在 awk grep sed中的命令不要用双引号 用单引号

2 指定分隔符
awk -F‘[: ]+‘ ‘{print $1}‘
-F 用于指定分隔符
[: ] 以冒号或空格为分隔符
+ 表示一个或多个 连续的多个冒号(空格)当作一个来处理
‘{print $1}‘ 打印出第一个字段

3 内置变量NF
cat file | awk ‘{print $NF}‘
NF awk的内置变量 每一行的字段数
{print $NF} 打印出最后一个字段
4 内置变量NR
cat file | awk ‘NR>1&&NR<4{print $0}‘
NR number of recording 行数
NR>1&&NR<4 将第2 行 和第3行打印出来

5执行模式
awk ‘patten1 {action1}‘
如果patten1为真 则执行action1
当patten1为空时,默认为真
cat file | awk ‘NR>1&&NR<4{print $0}‘
如果条件 NR>1&&NR<4为真 则执行动作 {print $0}

6 BEGIN 和 END
cat file | awk ‘BEGIN{pring "=====begin===="}{pring $0}END{print -----Tail-----}‘
在处理第一行之前 先执行BEGIN的动作 一般用于变量赋值
在处理完整个file之后 执行END的动作

7相关计算方法
cat file | awk ‘{print $0,($3+$4)/2}‘
增加了一列 ($3+$4)/2第3个数和第4个数的和的平均值
cat file | awk ‘{a=$3+$4;print $0,a/2}‘
可以使用变量 a

cat file|awk ‘{a+=$1}END{print a}‘
a+=$1 第一列的值相加
如果变量和数相加,那么a的初始值默认为0
ps aux |grep /firfox |awk ‘{a+=$3}END{print a}‘
pa aux的第3列表示cpu的占用比
统计出firfox的占用浏览量比

8 awk中的if
ll | awk ‘/^-/{if($5>1024)print $0}‘
/^-/ 过滤出所有的文件
ll 结果的第5列是文件大小 $5
if($5>1024)print $0 如果文件大于1k,则打印出该文件行

9 awk的变量介绍
-v 将外部值赋值给awk变量
cat file|awk -va=2 ‘{print a}‘

10 for循环

以上是关于awk基础的主要内容,如果未能解决你的问题,请参考以下文章

19.1 awk基础第十九章 awk

awk程序设计语言之-awk基础

awk基础用法

awk基础语法与简单示例

北大,awk 命令基础练习

awk从放弃到入门:awk基础