免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2071 | 回复: 7
打印 上一主题 下一主题

如何在.nawk文件中编写从另一个文件中将内容替换 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-12-31 09:55 |只看该作者 |倒序浏览
a文件内容如下:
text11    23
text22    24
text33    25
b文件内容如下:
text11   i love you
text22   hello china
text33   ni hao

想通过nawk实现将a文件中的text11,text22,text33替换成这种样式:
i_love_you 23
hello_china 24
ni_hao   25

请高手帮帮忙,谢谢

论坛徽章:
7
荣誉版主
日期:2011-11-23 16:44:17子鼠
日期:2014-07-24 15:38:07狮子座
日期:2014-07-24 11:00:54巨蟹座
日期:2014-07-21 19:03:10双子座
日期:2014-05-22 12:00:09卯兔
日期:2014-05-08 19:43:17卯兔
日期:2014-08-22 13:39:09
2 [报告]
发表于 2003-12-31 10:05 |只看该作者

如何在.nawk文件中编写从另一个文件中将内容替换

  1. join b a|cut -d" " -f2-
复制代码

论坛徽章:
0
3 [报告]
发表于 2003-12-31 10:15 |只看该作者

如何在.nawk文件中编写从另一个文件中将内容替换

斑竹大人,现在我假设b文件为:
text11 i love you
text22 hello china
text33 ni hao
text44 i love you 1
text55 hello china 2
text66 ni hao 3
你认为应该如何处理
另外你上面给出的答复能否解答一下“-f2-”的意思^^

论坛徽章:
0
4 [报告]
发表于 2003-12-31 10:16 |只看该作者

如何在.nawk文件中编写从另一个文件中将内容替换

paste a b | awk '{print $4"_"$5"_"$6,$2}' | sed 's/_  / /'


i_love_you 23
hello_china 24
ni_hao 25

论坛徽章:
7
荣誉版主
日期:2011-11-23 16:44:17子鼠
日期:2014-07-24 15:38:07狮子座
日期:2014-07-24 11:00:54巨蟹座
日期:2014-07-21 19:03:10双子座
日期:2014-05-22 12:00:09卯兔
日期:2014-05-08 19:43:17卯兔
日期:2014-08-22 13:39:09
5 [报告]
发表于 2003-12-31 10:24 |只看该作者

如何在.nawk文件中编写从另一个文件中将内容替换

-f2- : 保留字段2以后的所有字段。
还是一样的处理。

论坛徽章:
0
6 [报告]
发表于 2003-12-31 10:29 |只看该作者

如何在.nawk文件中编写从另一个文件中将内容替换

i try

论坛徽章:
0
7 [报告]
发表于 2003-12-31 17:20 |只看该作者

如何在.nawk文件中编写从另一个文件中将内容替换

搞了一下午还是没搞出来,请斑竹和高手们再指点一下,我的a文件是这样:
JobResultId!StartTime                 !GranulityPeriod!NeFdn                                                            !ResultReliablityFlag!ObjectMember0                                                    !CounterValue155373!CounterValue155374!CounterValue155375!CounterValue155376!CounterValue155377!CounterValue155378!CounterValue155379!CounterValue155380!
-----------!--------------------------!---------------!-----------------------------------------------------------------!--------------------!-----------------------------------------------------------------!------------------!------------------!------------------!------------------!------------------!------------------!------------------!------------------!
!       3697!       Dec 31 2003  5:15AM!              1!.0.3.0                                                           !                   1!111                                                              !             53.00!              2.00!             83.00!             83.00!              0.00!              0.00!              0.00!              0.00!
b文件是这样:
CounterId  !CounterName                                                                                                                                                                                                                                                    !
-----------!---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------!
!     141479!2G Attach Accept sent to foreign subscribers                                                                                                                                                                                                                   !
!     155373!GPRS attach request times                                                                                                                                                                                                                                      !
!     155374!GPRS attach accept times                                                                                                                                                                                                                                       !
!     155376!Intra-SGSN RAU accept times                                                                                                                                                                                                                                    !
!     143575!Packets discarded                                                                                                                                                                                                                                              !
!     155375!Intra-SGSN RAU request times                                                                                                                                                                                                                                   !
!     155378!Inter-SGSN RAU accept times                                                                                                                                                                                                                                    !
!     155377!Inter-SGSN RAU request times                                                                                                                                                                                                                                   !
!     155379!PDP context act request times                                                                                                                                                                                                                                  !
!     155380!PDP context act success times                                                                                                                                                                                                                                  !
!     153279!Packets buffered due to FLUSH_LL                                                                                                                                                                                                                               !
!     143575!Packets discarded                                                                                                                                                                                                                                              !
!     143043!Packets discarded due to buffer overflow                                                                                                                                                                                                                       !
(排版比较混乱,sorry)
现在想把a文件中的列名字CounterValue155373换成b文件中数字155373对应的GPRS attach request times ,并把GPRS attach request times 换成这种格式GPRS_attach_request_times ,请问我改怎么作?

论坛徽章:
7
荣誉版主
日期:2011-11-23 16:44:17子鼠
日期:2014-07-24 15:38:07狮子座
日期:2014-07-24 11:00:54巨蟹座
日期:2014-07-21 19:03:10双子座
日期:2014-05-22 12:00:09卯兔
日期:2014-05-08 19:43:17卯兔
日期:2014-08-22 13:39:09
8 [报告]
发表于 2003-12-31 23:58 |只看该作者

如何在.nawk文件中编写从另一个文件中将内容替换

差不多这样
  1. awk 'BEGIN{FS=OFS="!"}NR==FNR{gsub(" ","_",$3);a["CounterValue"$2+0]=$3}NR!=FNR{for (i=1;i<=NF;i++) if ($i in a) $i= a[$i];print}' b a
复制代码

只是多了一个_,请大家补充和完善。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP