awk

Posted zhou09

tags:

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

1、选项 -F 域分隔符

      -f 指定awk脚本文件

示例:

cat /etc/passwd | awk -F ‘:‘ ‘BEGIN{print "name,shell"} /root/{print $1","$7} END{print "~~end"}‘

为M为单位统计某个文件夹下字节数:

ls -l |awk ‘BEGIN {size=0;} {size=size+$5;} END{print "[end]size is ", size/1024/1024,"M"}‘

输出第五行:

cat /etc/passwd | awk -F ‘:‘ ‘BEGIN{print "name,shell"} {if(NR == 5){print $1","$7}} END{print "~~end"}‘

数组用法,for循环用法

awk -F ‘:‘ ‘BEGIN {count=0;} {name[count] = $1;count++;}; END{for (i = 0; i < NR; i++) print i, name[i]}‘ /etc/passwd

 

2、内置变量

ARGC               命令行参数个数
ARGV               命令行参数排列
ENVIRON            支持队列中系统环境变量的使用
FILENAME           awk浏览的文件名
FNR                浏览文件的记录数,每个文件从1开始
FS                 设置输入域分隔符,等价于命令行 -F选项
NF                 浏览记录的域的个数
NR                 已读的记录数,多个文件连续计数
OFS                输出域分隔符
ORS                输出记录分隔符
RS                 控制记录分隔符

 

3、控制语句if/else、while、do/while、for、break、continue与C语言一致

4、字符串函数

    技术分享

5、匹配  if($2 ~ /^abc/)

       if($2 !~ /^abc/)

 

6、函数

function 函数名(参数表){
}

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

awk

在awk代码中引用shell变量的方法

精通awk系列:awk读取行的细节

awk 脚本帮助 - 逻辑问题

linux awk命令的使用

sh 使用awk删除可执行代码的有效负载