linux文本切割awk,文本处理工具之awk

文本处理工具之AWK

一、linux文本处理工具三剑客:grep、sed、awk。其中grep是一种文本过滤器,sed是文本行编辑器,而awk是一种报表生成器,就是对文件进行格式化处理的,这里的格式化不是文件系统的格式化,而是对文件内容进行各种“排版”,进而格式化显示。

在linux上我们使用的是GNU awk 简称 gawk,并且gawk是awk的链接文件,因此在系统上使用gawk和awk效果一样

二、awk的工作原理

awk在处理文本时也是一次读取一行文本,然后根据输入分隔符(默认分隔符为空格符)进行切片,切成n个片,然后将每一片都富裕awk内部的一个变量当中来进行保存,这些变量名为$1,$2,$3,…,$n。awk就可以对这些切片进行单独处理,比如显示某一段,还可以对某些短进行额外的加工处理,比如计数、运算等。

三、awk的基本用法

1、awk [options] ‘program’ var=value file…awk [options] -f programfile var=value file…awk [options] ‘BEGIN{ action;… } pattern{ action;… } END{action;… }’ file …2、awk程序通常由:BEGIN语句块、能够使用模式匹配的通用语句块、END语句块,共三部分组成3、program:编程语言,通常是被单引号或双引号中

(1)program:pattern{action statements;..}

(2)pattern:模式部分决定动作语句何时触发及触发事件

(3)action statements对数据进行处理,放在{}内指明

4、选项

-F :指明输入字段分隔符(默认分隔符为空格符)

-v :变量赋值

-f :读取awk脚本并执行

四、pattern:根据pattern条件,过滤匹配的行,再做处理(1)如果未指定:空模式,匹配每一行(2)/regular expression/:仅处理能够模式匹配到的行,需要用/ /括起来(3) relational expression: 关系表达式,结果为“真”才会被处理真:结果为非0值,非空字符串假:结果为空字符串或0值

(4)#,# :行范围,类似sed或vim中的地址界定

(5)BEGIN 、END:两种特殊的模式

BEGIN语句块在awk开始从输入流中读取行之前被执行,这是一个可选的语句块&

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值