免费注册 查看新帖 |

Chinaunix

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

[文本处理] 大神请进来看看这样的文档怎样替换? [复制链接]

论坛徽章:
31
程序设计版块每日发帖之星
日期:2016-02-06 06:20:00程序设计版块每日发帖之星
日期:2016-07-20 06:20:00程序设计版块每日发帖之星
日期:2016-07-26 06:20:00每日论坛发贴之星
日期:2016-07-26 06:20:00程序设计版块每日发帖之星
日期:2016-07-27 06:20:00每日论坛发贴之星
日期:2016-07-27 06:20:00程序设计版块每日发帖之星
日期:2016-07-28 06:20:00程序设计版块每日发帖之星
日期:2016-07-29 06:20:00程序设计版块每日发帖之星
日期:2016-08-02 06:20:00程序设计版块每日发帖之星
日期:2016-08-06 06:20:00程序设计版块每日发帖之星
日期:2016-08-08 06:20:00程序设计版块每日发帖之星
日期:2016-08-09 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-05-13 13:11 |只看该作者 |倒序浏览


只替换第三列


源文档:
  1. 202.175.176.0   202.175.191.255 澳门 特别行政区
  2. 192.203.232.0   192.203.232.255 澳门区  CZ88.NET
  3. 202.204.24.0    202.204.24.255  北方工业大学 教师办公室
  4. 202.204.26.0    202.204.26.255  北方工业大学  CZ88.NET
  5. 124.228.32.72   124.228.32.72   常宁松柏飞翔网吧(松柏镇香洲小区)  CZ88.NET
  6. 202.198.176.0   202.198.178.25  长春工业大学  CZ88.NET
  7. 202.198.178.26  202.198.178.26  长春工业大学 南湖校区学生公寓楼四栋
  8. 218.88.186.48   218.88.186.48   成都中医药大学 峨眉学院
  9. 122.72.84.64    122.72.84.64    大北区 腾讯计算机系统云平台CDNTIP铁通节点(NWS_Appimg_HY服务器)
  10. 202.118.64.0    202.118.65.18   大连理工大学  CZ88.NET
  11. 202.118.65.19   202.118.65.19   大连理工大学 教务处
  12. 49.141.152.0    49.141.191.255  东北三省 教育网
  13. 49.141.216.0    49.141.255.255  东北三省 教育网
  14. 202.120.144.0   202.120.148.150 东华大学  CZ88.NET
  15. 202.120.148.151 202.120.148.151 东华大学 网络中心
复制代码
替换成的最终结果:
  1. 202.175.176.0   202.175.191.255 澳门
  2. 192.203.232.0   192.203.232.255 澳门
  3. 202.204.24.0    202.204.24.255  北京
  4. 202.204.26.0    202.204.26.255  北京
  5. 124.228.32.72   124.228.32.72   湖南
  6. 202.198.176.0   202.198.178.25  吉林
  7. 202.198.178.26  202.198.178.26  吉林
  8. 218.88.186.48   218.88.186.48   四川
  9. 122.72.84.64    122.72.84.64    甘肃
  10. 202.118.64.0    202.118.65.18   辽宁
  11. 202.118.65.19   202.118.65.19   辽宁
  12. 49.141.152.0    49.141.191.255  辽宁
  13. 49.141.216.0    49.141.255.255  辽宁
  14. 202.120.144.0   202.120.148.150 上海
  15. 202.120.148.151 202.120.148.151 上海
复制代码
假如我已经有a.txt文档关键字
  1. 澳门
  2. 北方工业大学
  3. 常宁松柏飞翔网吧
  4. 长春工业大学
  5. 成都中医药大学
  6. 大北区
  7. 大连理工大学
  8. 东北三省
  9. 东华大学
复制代码
并且已经有b.txt替换文档(可以根据要求重新写该文档)
  1. 澳门  替换成  澳门
  2. 北方工业大学  替换成  北京
  3. 常宁松柏飞翔网吧  替换成  湖南
  4. 长春工业大学  替换成  吉林
  5. 成都中医药大学  替换成  四川
  6. 大北区  替换成  甘肃
  7. 大连理工大学  替换成  辽宁
  8. 东北三省  替换成  辽宁
  9. 东华大学  替换成  上海
复制代码
怎样弄就能实现目标?谢谢大神!

我现在是用UE,替换,太累人。只好来求助!




论坛徽章:
54
2015亚冠之德黑兰石油
日期:2015-07-07 13:00:1615-16赛季CBA联赛之深圳
日期:2016-03-31 09:03:5415-16赛季CBA联赛之辽宁
日期:2016-05-09 20:38:15程序设计版块每日发帖之星
日期:2016-05-12 06:20:0015-16赛季CBA联赛之四川
日期:2016-05-13 15:19:4715-16赛季CBA联赛之福建
日期:2016-05-15 20:24:34每日论坛发贴之星
日期:2016-05-16 06:20:0015-16赛季CBA联赛之吉林
日期:2016-05-26 11:49:4715-16赛季CBA联赛之广东
日期:2016-05-26 13:49:18极客徽章
日期:2016-12-07 14:05:2315-16赛季CBA联赛之广夏
日期:2016-12-20 17:33:532017金鸡报晓
日期:2017-01-10 15:19:56
2 [报告]
发表于 2016-05-13 13:24 |只看该作者
  1. awk 'NR==FNR{a[$1]=$3;next}{for(i in a)if(match($3,i,t))$3=a[t[0]];NF=3}1' a b
复制代码

论坛徽章:
31
程序设计版块每日发帖之星
日期:2016-02-06 06:20:00程序设计版块每日发帖之星
日期:2016-07-20 06:20:00程序设计版块每日发帖之星
日期:2016-07-26 06:20:00每日论坛发贴之星
日期:2016-07-26 06:20:00程序设计版块每日发帖之星
日期:2016-07-27 06:20:00每日论坛发贴之星
日期:2016-07-27 06:20:00程序设计版块每日发帖之星
日期:2016-07-28 06:20:00程序设计版块每日发帖之星
日期:2016-07-29 06:20:00程序设计版块每日发帖之星
日期:2016-08-02 06:20:00程序设计版块每日发帖之星
日期:2016-08-06 06:20:00程序设计版块每日发帖之星
日期:2016-08-08 06:20:00程序设计版块每日发帖之星
日期:2016-08-09 06:20:00
3 [报告]
发表于 2016-05-13 13:27 |只看该作者
回复 2# haooooaaa



你大神就是厉害。谢谢


马上试去。不用累了




   

论坛徽章:
31
程序设计版块每日发帖之星
日期:2016-02-06 06:20:00程序设计版块每日发帖之星
日期:2016-07-20 06:20:00程序设计版块每日发帖之星
日期:2016-07-26 06:20:00每日论坛发贴之星
日期:2016-07-26 06:20:00程序设计版块每日发帖之星
日期:2016-07-27 06:20:00每日论坛发贴之星
日期:2016-07-27 06:20:00程序设计版块每日发帖之星
日期:2016-07-28 06:20:00程序设计版块每日发帖之星
日期:2016-07-29 06:20:00程序设计版块每日发帖之星
日期:2016-08-02 06:20:00程序设计版块每日发帖之星
日期:2016-08-06 06:20:00程序设计版块每日发帖之星
日期:2016-08-08 06:20:00程序设计版块每日发帖之星
日期:2016-08-09 06:20:00
4 [报告]
发表于 2016-05-13 14:32 |只看该作者
回复 2# haooooaaa


大神

哪个是a?源文档?    我上面我说的b就是你的b?  如果是这样的话,不对啊,没替换并且只输出b。我哪里弄错了?





   

论坛徽章:
54
2015亚冠之德黑兰石油
日期:2015-07-07 13:00:1615-16赛季CBA联赛之深圳
日期:2016-03-31 09:03:5415-16赛季CBA联赛之辽宁
日期:2016-05-09 20:38:15程序设计版块每日发帖之星
日期:2016-05-12 06:20:0015-16赛季CBA联赛之四川
日期:2016-05-13 15:19:4715-16赛季CBA联赛之福建
日期:2016-05-15 20:24:34每日论坛发贴之星
日期:2016-05-16 06:20:0015-16赛季CBA联赛之吉林
日期:2016-05-26 11:49:4715-16赛季CBA联赛之广东
日期:2016-05-26 13:49:18极客徽章
日期:2016-12-07 14:05:2315-16赛季CBA联赛之广夏
日期:2016-12-20 17:33:532017金鸡报晓
日期:2017-01-10 15:19:56
5 [报告]
发表于 2016-05-13 14:38 |只看该作者
回复 4# bmne


    awk ....           b.txt 源文档

论坛徽章:
31
程序设计版块每日发帖之星
日期:2016-02-06 06:20:00程序设计版块每日发帖之星
日期:2016-07-20 06:20:00程序设计版块每日发帖之星
日期:2016-07-26 06:20:00每日论坛发贴之星
日期:2016-07-26 06:20:00程序设计版块每日发帖之星
日期:2016-07-27 06:20:00每日论坛发贴之星
日期:2016-07-27 06:20:00程序设计版块每日发帖之星
日期:2016-07-28 06:20:00程序设计版块每日发帖之星
日期:2016-07-29 06:20:00程序设计版块每日发帖之星
日期:2016-08-02 06:20:00程序设计版块每日发帖之星
日期:2016-08-06 06:20:00程序设计版块每日发帖之星
日期:2016-08-08 06:20:00程序设计版块每日发帖之星
日期:2016-08-09 06:20:00
6 [报告]
发表于 2016-05-13 14:44 |只看该作者
回复 5# haooooaaa


谢谢大神

正确,非常好


辛苦了





   

论坛徽章:
31
程序设计版块每日发帖之星
日期:2016-02-06 06:20:00程序设计版块每日发帖之星
日期:2016-07-20 06:20:00程序设计版块每日发帖之星
日期:2016-07-26 06:20:00每日论坛发贴之星
日期:2016-07-26 06:20:00程序设计版块每日发帖之星
日期:2016-07-27 06:20:00每日论坛发贴之星
日期:2016-07-27 06:20:00程序设计版块每日发帖之星
日期:2016-07-28 06:20:00程序设计版块每日发帖之星
日期:2016-07-29 06:20:00程序设计版块每日发帖之星
日期:2016-08-02 06:20:00程序设计版块每日发帖之星
日期:2016-08-06 06:20:00程序设计版块每日发帖之星
日期:2016-08-08 06:20:00程序设计版块每日发帖之星
日期:2016-08-09 06:20:00
7 [报告]
发表于 2016-05-13 14:57 |只看该作者
回复 2# haooooaaa


大神

现在,在a文档里面,没有写进去要替换的,现在的结果是b文档里面只要有就一同输出了

我的意思,附加一个条件,只要a文档里面没有写进去要替换,b文档即使里面有也不输出


谢谢!

   

论坛徽章:
54
2015亚冠之德黑兰石油
日期:2015-07-07 13:00:1615-16赛季CBA联赛之深圳
日期:2016-03-31 09:03:5415-16赛季CBA联赛之辽宁
日期:2016-05-09 20:38:15程序设计版块每日发帖之星
日期:2016-05-12 06:20:0015-16赛季CBA联赛之四川
日期:2016-05-13 15:19:4715-16赛季CBA联赛之福建
日期:2016-05-15 20:24:34每日论坛发贴之星
日期:2016-05-16 06:20:0015-16赛季CBA联赛之吉林
日期:2016-05-26 11:49:4715-16赛季CBA联赛之广东
日期:2016-05-26 13:49:18极客徽章
日期:2016-12-07 14:05:2315-16赛季CBA联赛之广夏
日期:2016-12-20 17:33:532017金鸡报晓
日期:2017-01-10 15:19:56
8 [报告]
发表于 2016-05-13 15:06 |只看该作者
回复 7# bmne
  1. awk 'NR==FNR{a[$1]}ARGIND==2 && $1 in a{a[$1]=$3}ARGIND==3{for(i in a)if(match($3,i,t)){$3=a[t[0]];NF=3;print;break}}'
复制代码

论坛徽章:
31
程序设计版块每日发帖之星
日期:2016-02-06 06:20:00程序设计版块每日发帖之星
日期:2016-07-20 06:20:00程序设计版块每日发帖之星
日期:2016-07-26 06:20:00每日论坛发贴之星
日期:2016-07-26 06:20:00程序设计版块每日发帖之星
日期:2016-07-27 06:20:00每日论坛发贴之星
日期:2016-07-27 06:20:00程序设计版块每日发帖之星
日期:2016-07-28 06:20:00程序设计版块每日发帖之星
日期:2016-07-29 06:20:00程序设计版块每日发帖之星
日期:2016-08-02 06:20:00程序设计版块每日发帖之星
日期:2016-08-06 06:20:00程序设计版块每日发帖之星
日期:2016-08-08 06:20:00程序设计版块每日发帖之星
日期:2016-08-09 06:20:00
9 [报告]
发表于 2016-05-13 15:08 |只看该作者
回复 8# haooooaaa


写代码神速,牛


   

论坛徽章:
31
程序设计版块每日发帖之星
日期:2016-02-06 06:20:00程序设计版块每日发帖之星
日期:2016-07-20 06:20:00程序设计版块每日发帖之星
日期:2016-07-26 06:20:00每日论坛发贴之星
日期:2016-07-26 06:20:00程序设计版块每日发帖之星
日期:2016-07-27 06:20:00每日论坛发贴之星
日期:2016-07-27 06:20:00程序设计版块每日发帖之星
日期:2016-07-28 06:20:00程序设计版块每日发帖之星
日期:2016-07-29 06:20:00程序设计版块每日发帖之星
日期:2016-08-02 06:20:00程序设计版块每日发帖之星
日期:2016-08-06 06:20:00程序设计版块每日发帖之星
日期:2016-08-08 06:20:00程序设计版块每日发帖之星
日期:2016-08-09 06:20:00
10 [报告]
发表于 2016-05-13 15:15 |只看该作者
回复 8# haooooaaa

不运行,没有输出





   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP