免费注册 查看新帖 |

Chinaunix

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

[文本处理] sed 替换整行 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-11-21 15:23 |只看该作者 |倒序浏览
本帖最后由 blackboyheiwa 于 2014-11-21 15:24 编辑

请教大家一个问题,现在有两个文件A和B,里面分别有以 .SUBCKT 为开头的行,但是后面的内容是不确定的,    因为有很多的A,B这种文件。

我想把文件B中以 .SUBCKT开头的整行 替换掉  文件A中的 .SUBCKT开头的整行,用sed该怎么操作,我不知道这种变量咋搞。。。

多谢!

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
2 [报告]
发表于 2014-11-21 15:34 |只看该作者
最好能举个实例~

论坛徽章:
0
3 [报告]
发表于 2014-11-21 15:40 |只看该作者
好的,比如

文件A里面要替换的这行是:

.SUBCKT   A B C


文件B里面对应的是

.SUBCKT D  E  F


我现在想把 文件A的里面的 .SUBCKT开头的这一行用 文件B对应的这行整体替换掉。 问题是, 文件A和文件B里面 .SUBCKT后面的内容是不确定的,事先不知道。

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
4 [报告]
发表于 2014-11-21 16:26 |只看该作者
回复 3# blackboyheiwa

$ grep . A B
A:.SUBCKT   A B C
B:123
B:.SUBCKT D  E  F
B:abc

$ awk 'FNR==NR{a[$1]=$0;next}a[$1]{$0=a[$1]}1' A B
123
.SUBCKT   A B C
abc

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
5 [报告]
发表于 2014-11-21 17:14 |只看该作者
回复 3# blackboyheiwa

.SUBCKT开头的行在文件中只有一行吗?
   

论坛徽章:
0
6 [报告]
发表于 2014-11-21 17:53 |只看该作者
嗯,只有一行,回复 5# yestreenstars


   

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
7 [报告]
发表于 2014-11-21 17:58 |只看该作者
try:
  1. old=$(grep '^\.SUBCKT\b' A)
  2. sed -i '/^\.SUBCKT\b/s/.*/'"$old"'/' B
复制代码

论坛徽章:
2
2015年亚洲杯之伊拉克
日期:2015-04-13 10:55:1115-16赛季CBA联赛之山西
日期:2016-05-16 09:54:41
8 [报告]
发表于 2014-11-21 18:08 |只看该作者
yestreenstars 发表于 2014-11-21 17:58
try:



弱弱的问一句,这句该怎么理解,我查了点资料还是不是很明白
  1. sed -i '/^\.SUBCKT\b/s/.*/'"$old"'/'
复制代码

论坛徽章:
0
9 [报告]
发表于 2014-11-22 19:46 |只看该作者
多谢,搞定了!!
yestreenstars 发表于 2014-11-21 17:58
try:

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
10 [报告]
发表于 2014-11-24 09:03 |只看该作者
回复 8# little_angel

匹配到……就将……替换为……
   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP