免费注册 查看新帖 |

Chinaunix

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

对两个文件的处理(查找替换) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-02-29 17:49 |只看该作者 |倒序浏览
现在还有个问题
就是我另外有个文件格式跟我现在生成的文件格式一样

歌手#-fd-#专辑#-fd-#发行#-fd-#时间#-fd-#
问题是它的专辑名不全只是前面几个字符加省略号
我想要从我刚才生成的文件中和它一一比对发现是相对应的专辑就用完整的这条记录替换之前的那条,另外就是现有的文件中有些专辑是没有发行商的,我也想从我生成的文件中挨个找出对应的发行商出来添加上。这个怎么实现呢
我贴出了部分现有文件内容:
183Club#-fd-#好爱她好...#-fd-##-fd-##-fd-#
183Club#-fd-#No 1 Tea...#-fd-##-fd-##-fd-#
1976#-fd-#《耳机里的新浪潮》#-fd-##-fd-#2006年07月#-fd-#
1976#-fd-#LATE SUM...#-fd-##-fd-##-fd-#
1983组合#-fd-#壹加壹#-fd-##-fd-#2006年09月#-fd-#


我生成的文件内容格式为:
183Club#好爱她好想他(单曲)##2007年08月
183Club#闭上眼默念3遍(单曲)##2007年08月
183Club#《183Club首张专辑》#华纳#2006年08月
183Club#No1TeamFirstAlbum#华纳#2006年01月
1976#《耳机里的新浪潮》#华纳#2006年07月
1976#LATESUMMEROF1976#华纳#2003年08月
1983组合#壹加壹#华纳#2006年09月
1983组合#38719#上海音像#2005年11月
1983组合#二分之一#上海音像#2005年11月

论坛徽章:
23
15-16赛季CBA联赛之吉林
日期:2017-12-21 16:39:27白羊座
日期:2014-10-27 11:14:37申猴
日期:2014-10-23 08:36:23金牛座
日期:2014-09-30 08:26:49午马
日期:2014-09-29 09:40:16射手座
日期:2014-11-25 08:56:112015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:0315-16赛季CBA联赛之山东
日期:2017-12-21 16:39:1915-16赛季CBA联赛之广东
日期:2016-01-19 13:33:372015亚冠之山东鲁能
日期:2015-10-13 09:39:062015亚冠之西悉尼流浪者
日期:2015-09-21 08:27:57
2 [报告]
发表于 2008-02-29 17:52 |只看该作者
  1. #!/bin/awk
  2. BEGIN {
  3.         FS=OFS="#"
  4. }
  5. NR==FNR {
  6.         a[$2]=$3
  7. }
  8. NR>FNR {
  9.         b=$3
  10.         sub(/\.+$/,"",$3)
  11.         for(i in a) {
  12.                 if(index(i,$3) == 1) {
  13.                         c++
  14.                         d=i
  15.                 }
  16.         }
  17.         if(c==1) {
  18.                 $3=d
  19.                 $5=a[d]
  20.                 print
  21.         } else {
  22.                 $3=b
  23.                 print
  24.         }
  25.         c=0
  26. }
复制代码


假设代码存储为test.awk,新生成的文件为file1,以前的为file2。

awk -f test.awk file1 file2

论坛徽章:
0
3 [报告]
发表于 2008-02-29 18:06 |只看该作者
ly兄的动作好快

论坛徽章:
0
4 [报告]
发表于 2008-02-29 18:10 |只看该作者
你好ly

我的两个文件的分隔符不一样,这样写是不是有错误呢,而且你找专辑前是不是先把省略号去掉再进行比较的呢

对这个有点不解啊

论坛徽章:
0
5 [报告]
发表于 2008-02-29 18:23 |只看该作者
下班了
回家寻思去
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP