免费注册 查看新帖 |

Chinaunix

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

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

论坛徽章:
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
11 [报告]
发表于 2016-05-13 15:19 |只看该作者
回复 10# 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}}' a.txt b.txt ywd
  2. 202.175.176.0 202.175.191.255 澳门
  3. 192.203.232.0 192.203.232.255 澳门
  4. 202.204.24.0 202.204.24.255 北京
  5. 202.204.26.0 202.204.26.255 北京
  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 上海
复制代码

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
12 [报告]
发表于 2016-05-13 15:22 |只看该作者
  1. perl -anle 'if(@ARGV){$h{$F[0]}=$F[-1];next}for(keys %h){print "@F[0..2]" if($F[2]=~s/$_.*/$h{$_}/);}' b s
复制代码
202.175.176.0 202.175.191.255 澳门
192.203.232.0 192.203.232.255 澳门
202.204.24.0 202.204.24.255 北京
202.204.26.0 202.204.26.255 北京
124.228.32.72 124.228.32.72 湖南
202.198.176.0 202.198.178.25 吉林
202.198.178.26 202.198.178.26 吉林
218.88.186.48 218.88.186.48 四川
122.72.84.64 122.72.84.64 甘肃
202.118.64.0 202.118.65.18 辽宁
202.118.65.19 202.118.65.19 辽宁
49.141.152.0 49.141.191.255 辽宁
49.141.216.0 49.141.255.255 辽宁
202.120.144.0 202.120.148.150 上海
202.120.148.151 202.120.148.151 上海

论坛徽章:
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
13 [报告]
发表于 2016-05-13 15:23 |只看该作者
回复 11# 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
14 [报告]
发表于 2016-05-13 15:33 |只看该作者
本帖最后由 bmne 于 2016-05-13 15:35 编辑

回复 11# 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
15 [报告]
发表于 2016-05-13 15:38 |只看该作者
回复 12# sunzhiguolu


谢谢大神   

论坛徽章:
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
16 [报告]
发表于 2016-05-13 15:41 |只看该作者
回复 14# bmne


    按你的要求:只要a文档里面没有写进去要替换,b文档即使里面有也不输出

所以有三个文本  awk ... a.txt 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
17 [报告]
发表于 2016-05-13 15:45 |只看该作者
回复 16# 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
18 [报告]
发表于 2016-05-13 15:57 |只看该作者
回复 16# haooooaaa


不会大神的三个文档,不知道什么意思

a.txt里面有要替换的汉字
b.txt就是源文档

我把b再改个名字,写成b1

这样变成三个文档,a   b   b1

运行的结果是:只有2个IP列,没有汉字列了




   

论坛徽章:
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
19 [报告]
发表于 2016-05-13 16:00 |只看该作者
本帖最后由 haooooaaa 于 2016-05-13 16:01 编辑

回复 18# bmne


    好吧,

你上面太多了, 我理解错误了,


这样,,,
  1. awk 'NR==FNR{a[$1]=$3;next}{for(i in a)if(match($3,i,t)){$3=a[t[0]];NF=3;print;break}}' 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
20 [报告]
发表于 2016-05-13 16:12 |只看该作者
本帖最后由 bmne 于 2016-05-13 16:22 编辑

回复 19# haooooaaa



给你添麻烦了。

你的第二个代码,我颠倒了文档顺序后,能运行了,但,只删除要求不输出的汉字列,IP列还保留。总之,不完美







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

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP