美文网首页
每天一个linux命令(10)AWK命令用法与举例

每天一个linux命令(10)AWK命令用法与举例

作者: HAO延WEI | 来源:发表于2019-10-30 21:05 被阅读0次

一、AWK简介

awk是行处理器: 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常用来格式化文本信息
awk处理过程: 依次对每一行进行处理,然后输出

二、常用命令选项

  • -F fs fs指定输入分隔符,fs可以是字符串或正则表达式,如-F:
  • -v var=value 赋值一个用户定义变量,将外部变量传递给awk
  • -f scripfile 从脚本文件中读取awk命令
  • -m[fr] val 对val值设置内在限制,-mf选项限制分配给val的最大块数目;-mr选项限制记录的最大数目。这两个功能是Bell实验室版awk的扩展功能,在标准awk中不适用。

三、使用

  • awk 按照默认的空格或者tab分割
  • 变量NF表示当前行有多少个字段,因此$NF就代表最后一个字段。
  • $(NF-1)代表倒数第二个字段。
#按照默认的空格或者tab分割
Cat -n a.log|awk ‘{print $1}’  

#按照自定义的字符分割,使用-F 后面单引号里面写入自定义的内容
Cat -n a.log|awk  -F ‘:’  ‘{print $1}’ 

#增加开始结束行的控制
Cat -n a.log|awk ‘BEGIN{print “开始”} {if(“”!=$1)print$2} END{print “结束”}’

#统计文件中的行数
awk 'END{ print NR }' filename


awk内置变量

  • ARGC 命令行参数个数
  • ARGV 命令行参数排列
  • ENVIRON 支持队列中系统环境变量的使用
  • FILENAME awk浏览的文件名
  • FNR 浏览文件的记录数
  • FS 设置输入域分隔符,等价于命令行 -F选项
  • NF 浏览记录的域的个数
  • NR 已读的记录数
  • OFS 输出域分隔符
  • ORS 输出记录分隔符
  • RS 控制记录分隔符
#自定义变量 统计count
awk 'BEGIN {count=0;print "[start]user count is ", count} {count=count+1;print $0;} END{print "[end]user count is ", count}' /etc/passwd

#统计某个文件夹下的文件占用的字节数
ls -l |awk 'BEGIN {size=0;} {size=size+$5;} END{print "[end]size is ", size}’

#如果以M为单位显示:
ls -l |awk 'BEGIN {size=0;} {size=size+$5;} END{print "[end]size is ", size/1024/1024,"M"}' 

#统计某个文件夹下的文件占用的字节数,过滤4096大小的文件(一般都是文件夹):
ls -l |awk 'BEGIN {size=0;print "[start]size is ", size} {if($5!=4096){size=size+$5;}} END{print "[end]size is ", size/1024/1024,"M"}' 

相关文章

  • 每天一个linux命令(10)AWK命令用法与举例

    一、AWK简介 awk是行处理器: 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常...

  • Linux

    linux awk命令详解、linux awk命令Linux常用操作指令Linux netstat命令详解 awk...

  • Linux watch命令

    Linux watch命令可以动态监测一个命令的运行结果,常见用法如下: 举例: 动态监测CPU温度变化,命令: ...

  • awk的用法

    一、awk命令用法 在Linux中,awk 即 gawk , awk的二进制文件为gawk的链接文件; ...

  • Linux的awk命令

    Linux的awk命令 众所周知awk命令是Linux一个非常重要又难以掌握的命令,下面对这个命令进行一个详细的说...

  • awk命令的使用

    awk命令的使用 awk命令格式awk '条件1{动作1} 条件2{动作2}…' 文件名 在介绍awk命令的用法前...

  • awk命令

    下文来自:美团 吴孟达更多AWK命令请参考:Linux awk 命令扩展:linux sort,uniq,cut,...

  • Linux | awk

    参考:http://www.runoob.com/linux/linux-comm-awk.html awk命令的...

  • Linux 常用命令总结

    linux 命令速查手册linux 常用操作命令 sed 简明教程 awk 简明教程 常用命令 ls ...

  • Linux命令学习之:awk命令

    Linux命令学习之:awk命令 简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk...

网友评论

      本文标题:每天一个linux命令(10)AWK命令用法与举例

      本文链接:https://www.haomeiwen.com/subject/boeavctx.html