具备C语言的能力下,快速学会使用AWK为了做些什么

awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。


输入awk的文本首先会被按“行”划分为很多条"记录",每一行表示一条记录,每一行再由分隔符划分成很多个“域”,分隔符默认是空格符,也可以通过命令参数-F来指定

比如 awk -F ';'。


每一条记录会被awk的{action script}处理一次,分割出来的“域”其实就是从当前被action script处理的行提取出来的索引,第一个域用$1索引,第二个用$2,以此类推,其中$0表示对一整行进行索引。


我觉得把awk理解为虚拟机程序会更合适,其中 -F和“输入的文本文件路径”之类的可以可以理解为是虚拟机的参数配置,


而虚拟机执行的脚本就是awk中用单引号引起来的脚本。


一个完整的awk虚拟机脚本应该包含几个部分,脚本的初始化代码,脚本的循环行处理代码,脚本的结束代码。

比如 awk 'BEGIN{   print  "init..."}    {print "every line have to do this" }  END{ print "program have ending " }'


而且编程的语法类似于C语言,甚至比C语言更简约。


我们甚至还可以利用正则表达式从输入的文本过滤出我们需要行进行编程处理(而不是所有行都处理),比如

awk 'BEGIN{   print  "init..."}    /  双斜杠里面是正则表达式  /{print "every line have to do this" }  END{ print "program have ending " }'


那么我们能用awk干嘛?


1.统计文档


2. 对文档做复杂的查询


3. 修改和编辑文档内容。读取文档的内容,利用if语句处理特定的行,然后重定向到新文档


4.操作数据库(这个具体自己找相关资料吧)。


5.简洁的浏览文件,过滤出文档中你需要的信息。



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值