linux最后一行awk,51CTO博客-专业IT技术博客创作平台-技术成就梦想

1968fc3be94796ba06450ee91de0eea3.png

e5e01d7c8ec7f1fddbd3623a705b2d15.png

c770c19bd5fd4dcc2822e73f402dfacf.png

1、awk读入第一行内容

2、判断是否符合模式中的条件NR<3

如果匹配,则执行对应的动作print NR $1

如果不匹配,继续读下一行

3、继续读下一行

4、直到读到最后一行

b670eb1ab9c3409f1b85d252b1de0b3d.png

c17ff5300b1673fe2ce9278e48302d98.png

8c8cbec4959a9b562be7614e45b37609.png

fc31fa2ef1ff8b3db37af85a7db03873.png

06431348555cd216f382824202cd3475.png

默认情况:一行就是一个记录,当然如果修改也行分隔符就不一样了。

内置变量:

f6ec47baf86a65065165e574e5213235.png

正则表达式:

7a4fa5c103c98f5a9156e5d66903ea7b.png

运算符:

3ff9e41dd411d23fc0ebf496bd7f714b.png

caf84929d4f00242ea99ac0ae0fdcede.png

其实在awk看来,文件从头到尾一段连续的字符串,只是中间有一些\n(回车换行符),RS为了

方便人查看,就把RS值设置为\n,当然可以人为修改,如上图

24bc8cf6d70ddd6d78e9f2915c631c4f.png

+表示:多个一样的,例如多个空格

fe4d31d2d9ea0de9328e58c371549ab2.png

两种写法

79471614f12d4d687c69fc98b8995522.png

这个区别在哪??? 为什么显示不同,大神来解答下。。。

ab983aeaff555364ba0661ea3ebb40c1.png

当然-F后面[],可加可不加,如果就以一个分隔符的话

x重复m次             /cool{5}/

x重复至少m次    /cool{2,}/

x重复至少m次,但不超过n次        /cool{m,n}/

注意:cool加不加括号

/cool{5}/ 表示coo再加上5个l,coolllll

/(cool){5}/ 表示cool匹配5个,cool cool cool cool cool

以上必须要加参数--posix或者--re-interval

2f77dba2a130d5bd3fb2652d26878e5b.png

首先以“:”号分隔字段,再查找第一个字段符合字符”o”出现至少一次,不超过2次的,最后

打印行号,第一个字段,最后一次字段。

取反!~

cff4782331d74c0affdcfd3dbd61ad45.png

1、首先以“:”号,分隔字段,然后同时满足行号=1,且第一个字段中包含的字符”o”出现至少一次,

不超过2次的,打印行号,第一个字段

2、行号1或者行号2,打印第一个字段。

9dc309a363b446482268804dd1ead80c.png

023d83a0eadac0a22a95f3342f08dd04.png

范围从第1行到第3行

7efa8b18b440c4a1d47d9416050169fd.png

awk不能直接使用行号作为范围,因为awk具有内置变量NR来记录

范围模式

awk ‘/start pos/,/end pos/ {print $0}’ awk1.txt

awk ‘/start pos/,NR==xxx {print $0}’ awk1.txt

400ea3e3b9a7d60aa51239d511b9174c.png

这样就只能取第一个条件了

一个开始和一个结束 必须要能确定行

这个=2 ,<=3 确定不了

所以只按前面的=2取了第二行

5045a7e577974db5daae9941e6185b2e.png

2a7a0c4d4b28e93223ea2992d8d83954.png

4d73b79cbb1842ab3859ce9f37e9498c.png

043e1c53e218867b8b875d9eb27b3a1e.png

没有文件,awk依旧可以处理BEGIN模式下的操作块

082fb23b82658a4e179c879878fdff64.png

BEGIN、END模块后面的语句分隔用;号

print的多个参数之间以逗号分隔

a340cf9a0532806af821940e9198535a.png

b77932c5a3d78ff4200c1ca2c2a5bf00.png

bccafc199cc0846583c67fa213b544c4.png

统计文件里面的空行

c670239860d3de72619df8a4612a7e4a.png

b=1就是验证下后面用什么符号,BEGIN,END后面的动作里用分号

a=a+1

a++

a=a+2

a+=2

a+=$0

命令赋值 -F

7e56741af47019f8f26e2778aab6a977.png

340c3fe83ca55a4506fe107f3e170e9c.png

布尔表达式,为真才执行

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值