数据人的linux知识(五)-- 分析以及处理文件2(awk)

AWK

awk是一种文本处理工具,其功能与cut类似,但是比cut强大。当然,代价是awk的计算速度不如cut。

比如说,我们想以特殊的顺序打印列内容:

cut -d',' -f17,15,18,16 flightdelays.csv

不过我们会发现,其顺序还是15,16,17,18。cut内部是不支持列元素的特殊顺序显示的!

但是用awk就可以做到:

awk -F',' '{print $17,$15,$18,$16}' flightdelays.csv

1. awk -F','  '{print $1-- $2, $3}' :-F表示分隔符,$1表示分隔符分开的第一列(特别声明下,$0代表整个行),和cut不同,列与列  之间可以添加其他元素,像这里我们添加了"--"和","。

awk内建变量(不需要在前加$)

awk的处理流程

awk的处理流程类似于一个循环语句,其对于文件的每一行逐行分析执行命令。所以,类似于以下指令:

awk '{sss+=$1} END {print sss}' test.csv

输出会是一个数字,因为print的动作只在END语句块内发生了一次,循环发生多次的是 sss+=$1。

awk的BEGIN和END语句块

某些场景下,awk语句需要有初始化或者后续的操作,这时候我们要使用BEGIN和END(需要声明,在awk中动作是在{}发生的,如果需要多个指令辅助时,可以利用分号";"间隔)

需要注意的点

1.  awk的动作都要在''内发生,如果在动作内部需要打印非变量字符串,需要用双引号而非单引号。

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值