awk命令使用

#linux awk command info
awk是一个行编辑器  和sed是互补关系  主要功能是截取,它类似于cut的功能,但是功能更强大

不单可以截取还可以运算 排序 还支持shell语句等一些功能


awk语法

awk [option]'{program}'[filename]

awk 认为每一行都是一条记录,记录与记录的默认分割符是回车
         每一列是一个字段,字段与字段的默认分割符是空

awk 认为 每一条awk语句就是一个脚本 所以程序脚本要用{}定义,由于awk命令行假定脚本是单文本字符串,所以必须将程序脚本包括在单引号内。

#awk截取
#nf  number field  列截取

print 输出
   $0  文本全部
   $1-$n 输出第几个字段
   $NF  输出最后一个字段

#行截取  nr number row
如:awk 'NR==2{print $0}' file


更改程序处理的优先级  BEGIN   END  假如有多个程序

awk 数据字段和记录变量

FS  指定输入字段的分割符    类似于命令选项   -F
OFS 指定输出字段分割符   

RS  指定输入记录分割符   
ORS 指定输出记录的分割符

FIELDWIDTHS 按宽度分割字段
如:awk 'BEGIN{FIELDWIDTHS="3 4 5 6"}{print $1,$2,$3,$4}'

awk 运算

+ - * / ^ %  赋值
如:awk 'BEGIN{a=1;b=2;c=a+b;print c}'
如:计算内存使用率: 
  awk 'NR==1{t=$2}NR==2{f=$2;print (t-f)*100/t}' /proc/meminfo

比较运算
> < >= <= == !=  数字 

对于字符串 
==精确匹配
~ 模糊匹配 
!~   

#awk 函数  if for while    do-while

调用linux系统命令:
    格式:awk 'BEGIN{system("linux命令")}'
    打印时间: awk 'BEGIN{system("date")}'
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值