免费注册 查看新帖 |

Chinaunix

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

问一个关于替换的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-03-21 11:29 |只看该作者 |倒序浏览
设A file
100
73
64

B file, xx yy,zz等其实是html code
<xx>intl<xx>
<yy>intl<yy>
<zz>intl<zz>

现将Afile的值按顺序替换掉Bfile的intl

有什么好的方法吗?

想到的
for/while循环,读取A file,不断替换B file相匹配第一个intl
请问有其它好方法吗?

论坛徽章:
0
2 [报告]
发表于 2005-03-21 11:51 |只看该作者

问一个关于替换的问题

  1. nawk -F[\>\<] 'NR==FNR{a[NR]=$0}NR!=FNR{print "<"$2">"a[FNR]"<"$4">"}' a b
复制代码

论坛徽章:
0
3 [报告]
发表于 2005-03-21 12:26 |只看该作者

问一个关于替换的问题

不好意思,我没说清楚

B file是一个没有规律的html


<a href="xxx">你好 intl</a>  <font color='yyy'>在这里intl</font> <table><tr>
<td>intl</td></table>

上面的方法是对><作分隔,对上面这种格式的文件就无能为力了

论坛徽章:
0
4 [报告]
发表于 2005-03-21 18:34 |只看该作者

问一个关于替换的问题

没有任何规律的话是没办法解析的,所以要么您自己找到规律,要么贴出完整的文本。

论坛徽章:
0
5 [报告]
发表于 2005-03-22 11:42 |只看该作者

问一个关于替换的问题

那么,如果只匹配第一个,用sed应如何写呢?

平时写的都是s/xx/yyy/g

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
6 [报告]
发表于 2005-03-22 11:46 |只看该作者

问一个关于替换的问题

s/xx/yy/1

论坛徽章:
0
7 [报告]
发表于 2005-03-22 12:24 |只看该作者

问一个关于替换的问题

sed -e 's/intl/qq/1' test

test file:
<>intl</abc>
<abc>intl  </q>
<iabc>   intl  </awb>

Result:
<>qq</abc>
<abc>qq  </q>
<iabc>   qq  </awb>

机器是solarix

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
8 [报告]
发表于 2005-03-22 12:57 |只看该作者

问一个关于替换的问题

  1. [waker@www d1]$ cat a
  2. 100
  3. 73
  4. 64


  5. [waker@www d1]$ cat b
  6. <a href=xxx>你好 intl</a>  <font color='yyy'>在这里intl</font> <table><tr>
  7. <td>intl</td></table>


  8. [waker@www d1]$ gawk 'BEGIN{while(getline v[++i] <"a");j=1}{while(sub(/intl/,v[j++]));print $0}' b
  9. <a href=xxx>你好 100</a>  <font color='yyy'>在这里73</font> <table><tr>
  10. <td>64</td></table>
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP