免费注册 查看新帖 |

Chinaunix

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

sco505文本替换 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-10-01 17:59 |只看该作者 |倒序浏览
在sco505下有二文本如下:
A文本:
20010110001 | 张三 | 20020220013
20010110031  |王二 | 20020220014
20030120025 | 王大麻子 | 2009056064
B文本如下
20010110001 | 0115 |张三 | 666999999
20010110031  |0365 | 李四 |20020220964
20030120025 | 6558 |王大麻子 | 2003536068

如上所示AB文本中的相关项是第一列
现要根据A将B文本中的第一列替换为A文本中的相对应的第三列!
用脚本和程序均可。

小弟初学,请各位大大多多关照。
如是程序,在编译时应注意什么?

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
2 [报告]
发表于 2006-10-01 18:25 |只看该作者
join a b|cut -f3- -d'|'

论坛徽章:
0
3 [报告]
发表于 2006-10-01 19:20 |只看该作者
谢谢楼上的回复,但有一个条件可能我没说清楚:
B文本行数与A文本行数并不相等
有可能A里有B里没有
所以不能简单的join
不过谢谢了!!!

论坛徽章:
0
4 [报告]
发表于 2006-10-01 20:40 |只看该作者
那就来个脚本吧

  1. #!/bin/sh
  2. while read line
  3. do
  4. sed  -n  "/$(echo $line|awk -F'|' '{print $1}')/s//$(echo $line|awk -F'|' '{print $3}')/p" b.txt
  5. done <a.txt
复制代码

论坛徽章:
0
5 [报告]
发表于 2006-10-01 20:44 |只看该作者

  1. minuit@suse:~/shell/temp> time join a.txt b.txt|cut -f3- -d'|'
  2. 20020220013 | 0115 |张三 | 666999999
  3. 20020220014  |0365 | 李四 |20020220964
  4. 2009056064 | 6558 |王大麻子 | 2003536068

  5. real    0m0.007s
  6. user    0m0.000s
  7. sys     0m0.008s
  8. minuit@suse:~/shell/temp> time sh 2.sh
  9. 20020220013| 0115 |张三 | 666999999
  10. 20020220014 |0365 | 李四 |20020220964
  11. 2009056064| 6558 |王大麻子 | 2003536068

  12. real    0m0.062s
  13. user    0m0.032s
  14. sys     0m0.024s
  15. minuit@suse:~/shell/temp>
复制代码

这就是效果

论坛徽章:
0
6 [报告]
发表于 2006-10-01 22:25 |只看该作者
谢谢,我明天试一下!
如行,请你吃兰州牛肉面

论坛徽章:
0
7 [报告]
发表于 2006-10-01 23:51 |只看该作者
偶不吃面要不来二瓶酒再上一点小菜

论坛徽章:
0
8 [报告]
发表于 2006-10-02 12:17 |只看该作者
  1. awk -F\| 'FILENAME=="A" { key[$1]=$NF; } FILENAME=="B" { for (i=1; i<=NF; i++) if (i==1) printf("%s", key[$1]?key[$1]:$1); else printf("|%s", $i); printf("\n"); }' A B
复制代码

论坛徽章:
0
9 [报告]
发表于 2006-10-02 13:05 |只看该作者
也谢谢楼上仁兄!!!

论坛徽章:
0
10 [报告]
发表于 2006-10-02 17:41 |只看该作者
请我7侧耳根,还是虫草、梅花糕、冰糖葫芦、猪肉炖粉条,还是凉皮、拉面、手抓饭阿?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP