免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: wawxdyy
打印 上一主题 下一主题

在一个awk命令中生成的一个数组,如何让另一个 awk命令使用 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2010-07-15 14:51 |只看该作者
回复  wawxdyy


    如果m n的位置固定就很容易啊。
blackold 发表于 2010-07-15 14:36


在File2中真的很难定位m n啊

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
12 [报告]
发表于 2010-07-15 15:43 |只看该作者
回复 11# wawxdyy


    还没搞定吗?

论坛徽章:
0
13 [报告]
发表于 2010-07-15 15:45 |只看该作者
回复  wawxdyy


    还没搞定吗?
blackold 发表于 2010-07-15 15:43



    努力中,呵呵,水平有限

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
14 [报告]
发表于 2010-07-15 15:50 |只看该作者
回复 13# wawxdyy
  1. awk 'NR==FNR{a[$2","$3]=$4;next}/==>/{FS="==> *";$0=gensub(/(==> *)([0-9]+) *([0-9]+)/,"\\1\\2\\1\\3\\1","g");$2="==>  "a[$2","$3];$3="";OFS=""}1' file1 file2
复制代码

论坛徽章:
0
15 [报告]
发表于 2010-07-15 15:58 |只看该作者
回复  wawxdyy
blackold 发表于 2010-07-15 15:50



    哦也,啥也不说了,就一个字,谢!

我试了一下,发现m n被去掉了。

  1. # gawk 'NR==FNR{a[$2","$3]=$4;next}/==>/{FS="==> *";$0=gensub(/(==> *)([0-9]+) *([0-9]+)/,"\\1\\2\\1\\3\\1","g");$2="==>  "a[$2","$3];$3="";OFS=""}1' /tmp/file3 /tmp/file1
  2. Switch 0x0008f10400411f9e ISR9024S-M Voltaire:
  3. 0x0008f10400411f9e "ISR9024S-M Voltair"       1    1[  ]  ==( 4X 2.5 Gbps Active /   LinkUp)==>  0x0002c90106a48cf2[  ] "MT23108 InfiniHost Mellanox Technologies" (  )
  4. 0x0008f10400411f9e "ISR9024S-M Voltair"       1    2[  ]  ==( 4X 2.5 Gbps Active /   LinkUp)==>  0x0003ba000100b0b5[  ] "wave179 HCA-1" (  )
  5. 0x0008f10400411f9e "ISR9024S-M Voltair"       1    3[  ]  ==( 4X 2.5 Gbps Active /   LinkUp)==>  0x0002c90106a48d62[  ] "MT23108 InfiniHost Mellanox Technologies" (  )
  6. 0x0008f10400411f9e "ISR9024S-M Voltair"       1    4[  ]  ==( 4X 2.5 Gbps Active /   LinkUp)==>  0x0003ba000100cda5[  ] "MT25408 ConnectX Mellanox Technologies" (  )
  7. 0x0008f10400411f9e "ISR9024S-M Voltair"       1    5[  ]  ==( 4X 2.5 Gbps Active /   LinkUp)==>  0x0002c90108ccfa61[  ] "wave183 HCA-1" (  )
  8.            6[  ]  ==( 4X 2.5 Gbps   Down /  Polling)==>  
  9. 0x0008f10400411f9e "ISR9024S-M Voltair"       1    7[  ]  ==( 4X 2.5 Gbps Active /   LinkUp)==>  0x0002c9030001c8e7[  ] "MT25408 ConnectX Mellanox Technologies" (  )
  10. 0x0008f10400411f9e "ISR9024S-M Voltair"       1    8[  ]  ==( 4X 2.5 Gbps Active /   LinkUp)==>  0x0002c903000008d1[  ] "MT25408 ConnectX Mellanox Technologies" (  )
  11.            9[  ]  ==( 4X 2.5 Gbps   Down /  Polling)==>  
  12. 0x0008f10400411f9e "ISR9024S-M Voltair"       1   10[  ]  ==( 4X 2.5 Gbps Active /   LinkUp)==>  0x0002c903000008d2[  ] "MT25408 ConnectX Mellanox Technologies" (  )
  13. 0x0008f10400411f9e "ISR9024S-M Voltair"       1   11[  ]  ==( 4X 2.5 Gbps Active /   LinkUp)==>  0x0002c90109763f01[  ] "MT23108 InfiniHost Mellanox Technologies" (  )
  14. 0x0008f10400411f9e "ISR9024S-M Voltair"       1   12[  ]  ==( 4X 2.5 Gbps Active /   LinkUp)==>  0x0002c90109763f02[  ] "MT23108 InfiniHost Mellanox Technologies" (  )
  15. 0x0008f10400411f9e "ISR9024S-M Voltair"       1   13[  ]  ==( 4X 2.5 Gbps Active /   LinkUp)==>  0x0002c90106a48d61[  ] "MT23108 InfiniHost Mellanox Technologies" (  )
  16. 0x0008f10400411f9e "ISR9024S-M Voltair"       1   14[  ]  ==( 4X 2.5 Gbps Active /   LinkUp)==>  0x0002c90109764132[  ] "MT23108 InfiniHost Mellanox Technologies" (  )
  17. 0x0008f10400411f9e "ISR9024S-M Voltair"       1   15[  ]  ==( 4X 2.5 Gbps Active /   LinkUp)==>  0x0002c90106a48cf1[  ] "MT23108 InfiniHost Mellanox Technologies" (  )
  18.           16[  ]  ==( 4X 2.5 Gbps   Down /  Polling)==>  
  19.           17[  ]  ==( 4X 2.5 Gbps   Down /  Polling)==>  
  20. 0x0008f10400411f9e "ISR9024S-M Voltair"       1   18[  ]  ==( 4X 2.5 Gbps Active /   LinkUp)==>  0x0002c90108ccfa62[  ] "wave183 HCA-1" (  )
  21. 0x0008f10400411f9e "ISR9024S-M Voltair"       1   19[  ]  ==( 4X 2.5 Gbps Active /   LinkUp)==>  0x0003ba000100cda6[  ] "MT25408 ConnectX Mellanox Technologies" (  )
  22. 0x0008f10400411f9e "ISR9024S-M Voltair"       1   20[  ]  ==( 4X 2.5 Gbps Active /   LinkUp)==>  0x0002c9030001c80b[  ] "MT25408 ConnectX Mellanox Technologies" (  )
  23.           21[  ]  ==( 4X 2.5 Gbps   Down /  Polling)==>  
  24. 0x0008f10400411f9e "ISR9024S-M Voltair"       1   22[  ]  ==( 4X 2.5 Gbps Active /   LinkUp)==>  0x0003ba000100b0b6[  ] "wave179 HCA-1" (  )
  25.           23[  ]  ==( 4X 2.5 Gbps   Down /  Polling)==>  
  26. 0x0008f10400411f9e "ISR9024S-M Voltair"       1   24[  ]  ==( 4X 2.5 Gbps Active /   LinkUp)==>  0x0002c90109764131[  ] "MT23108 InfiniHost Mellanox Technologies" (  )

复制代码

论坛徽章:
0
16 [报告]
发表于 2010-07-15 16:10 |只看该作者
本帖最后由 wawxdyy 于 2010-07-15 16:12 编辑

回复 14# blackold


   请解释一下gensub(/(==> *)([0-9]+) *([0-9]+)/,"\\1\\2\\1\\3\\1","g")是什么意思行吗?

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
17 [报告]
发表于 2010-07-15 16:13 |只看该作者
回复 16# wawxdyy


    结果对了吗?

论坛徽章:
0
18 [报告]
发表于 2010-07-15 16:23 |只看该作者
回复  blackold


   请解释一下gensub(/(==> *)([0-9]+) *([0-9]+)/,"\\1\\2\\1\\3\\1","g"是什么意思 ...
wawxdyy 发表于 2010-07-15 16:10



    清楚了,是用"==> *"当分隔符

论坛徽章:
0
19 [报告]
发表于 2010-07-15 16:34 |只看该作者
回复 17# blackold


    结果对了,我在我的及其稍稍改了一下

  1. gawk 'NR==FNR{a[$2","$3]=$4;next}/==>/{FS="==> *";$0=gensub(/(==> *)([0-9]+) *([0-9]+)/,"\\1\\2\\1\\3\\1\\2 \\3","g");$2="==>  "a[$2","$3]" ";$3="";OFS=""}1'
复制代码
再次感谢黑哥

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
20 [报告]
发表于 2010-07-16 09:23 |只看该作者
回复 19# wawxdyy


    有个错误:gawk 'NR==FNR{a[$2","$3]=$4;next}/==>/{FS="==> *";$0=gensub(/(==> *)([0-9]+) *([0-9]+)/,"\\1\\2\\1\\3\\1\\2 \\3","g");$2="==>  "a[$2","$3]" ";$3="";OFS=""}1'

   有的行只有==>,但后面没有数字。第二条pattern{action}的pattern要修改:
/==> *[0-9]+ +[0-9]+/

gawk 'NR==FNR{a[$2","$3]=$4;next}/==> *[0-9]+ +[0-9]+/{FS="==> *";$0=gensub(/(==> *)([0-9]+) +([0-9]+)/,"\\1\\2\\1\\3\\1\\2 \\3","g");$2="==>  "a[$2","$3]" ";$3="";OFS=""}1'
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP