Ruby 请教!Ruby 如何替换文件中的某一列

devops · 2014年12月16日 · 最后由 chengenbao 回复于 2014年12月16日 · 1817 次阅读

1040 '饰品祈福' 1024 '饰品附魔' 1023 '神谕增加次数' 1011 '宠物洗炼' 1017 '婚礼相关'

BRTM_00003444867 華純 1056131 20 2014-12-15 20:05:05 0 1040 0 BRTM_00000514382 マトラ 1002283 20 2014-12-15 19:55:38 0 1011 0 BRTM_00000109242 Toki 1010998 2 2014-12-15 19:23:54 0 1023 0


按照第一组的规则,替换第二组的第六列。 如:1023 替换为 '神谕增加次数' BRTM_00000109242 Toki 1010998 2 2014-12-15 19:23:54 0 神谕增加次数 0 谢谢啦~~

看到日文就烦

这个很简单吧,将第一组的规则扫到一个 hash 中,然后读入第二组数据,每次读入一行,替换第六列就好了

#2 楼 @chengenbao 我当时也是这样想的,但是我发现 arr[6] == "xx" 竟然返回 false,噢~~我是新手..

5 楼 已删除

#2 楼 @chengenbao 后来用 awk 解决了..

awk 'BEGIN{OFS=","}ARGIND==1{a[$1]=$2}ARGIND==2{if(FNR==1){print $0;}else{$8=a[$8];$5=$5" "$6;print $0}}' a Temp_flow.txt.bak
需要 登录 后方可回复, 如果你还没有账号请 注册新账号