awk 里面的数组练习

练习1

题目

[root@iZ2ze3nk0eea4xli1fijrvZ awk]# cat file4
811009123456 185451 40.WT_VERIFY_TX_ALL 2442(7) HT40-MCS7 CHAIN0
-31.67 dB (-45.00 .............O.... -28.00)
14.77 dBm ( 13.50 .......O.......... 16.50)
-1.17 ppm (-20.00 ........O......... 20.00)
811009123453 185451 41.WT_VERIFY_TX_ALL 2442(7) HT40-MCS7 CHAIN1
-32.72 dB (-45.00 ............O..... -28.00)
14.59 dBm ( 13.50 ......O........... 16.50)
-1.03 ppm (-20.00 ........O......... 20.00)
811009123455 185451 51.WT_VERIFY_TX_ALL 5200(40) AC20-MCS7 CHAIN0
-37.65 dB (-45.00 .......O.......... -28.00)
15.68 dBm ( 14.00 .........O........ 17.00)
-1.47 ppm (-20.00 .......O.......... 20.00)
811009123459 185451 52.WT_VERIFY_TX_ALL 5280(56) AC20-MCS7 CHAIN0
-40.38 dB (-45.00 ....O............. -28.00)
15.68 dBm ( 14.00 .........O........ 17.00)
-1.60 ppm (-20.00 .......O.......... 20.00)

 

期望结果

811009123456 185451 40.WT_VERIFY_TX_ALL 2442(7) HT40-MCS7 CHAIN0-31.67 dB (-45.00 .............O.... -28.00)14.77 dBm ( 13.50 .......O.......... 16.50)-1.17 ppm (-20.00 ........O......... 20.00)
811009123453 185451 41.WT_VERIFY_TX_ALL 2442(7) HT40-MCS7 CHAIN1-32.72 dB (-45.00 ............O..... -28.00)14.59 dBm ( 13.50 ......O........... 16.50)-1.03 ppm (-20.00 ........O......... 20.00)
811009123455 185451 51.WT_VERIFY_TX_ALL 5200(40) AC20-MCS7 CHAIN0-37.65 dB (-45.00 .......O.......... -28.00)15.68 dBm ( 14.00 .........O........ 17.00)-1.47 ppm (-20.00 .......O.......... 20.00)
811009123459 185451 52.WT_VERIFY_TX_ALL 5280(56) AC20-MCS7 CHAIN0-40.38 dB (-45.00 ....O............. -28.00)15.68 dBm ( 14.00 .........O........ 17.00)-1.60 ppm (-20.00 .......O.......... 20.00)

 

解法1

 cat file4 | awk '/^811/{print a;a=$0;next}{a=a""$0}END{print a}'

思路:遍历整个文本,以811开头的存一个变量,不是以811开头的以“ ”空格为拼接符,拼接在以811开头的行后面

分析:awk 就是一行一行读取文件,读取第一行,pattern 是以811开头的,执行后面的action,{print a;a=$0;next},print a ,由于读取第一行a 的值为空,见如下分析,第二个打印空行是因为分号的原因,如果a 没有值,则a应该答应空白。

[root@iZ2ze3nk0eea4xli1fijrvZ awk]# cat file4 | awk '/^811/{print a"===="}'
====
====
====
====
[root@iZ2ze3nk0eea4xli1fijrvZ awk]# cat file4 | awk '/^811/{print a;print "===="}'

====

====

====

====

 

转载于:https://www.cnblogs.com/zcmdxj/p/10176484.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值