免费注册 查看新帖 |

Chinaunix

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

sed如何把copy某字符串到某行的末尾 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-09-18 19:14 |只看该作者 |倒序浏览
eg:
file:1.txt
内容:
sn: 1234556
cn:

sn: 379482784
cn:

sn: 7849834
cn:

现在想把sn:后面跟的那些数字粘贴到下一行的cn:里
即想要的结果如下:
sn: 1234556
cn: 1234556

sn: 379482784
cn: 379482784

sn: 7849834
cn: 7849834

用sed偶只能做到在cn:的下一行添加数字而无法在cn的行尾加入数字
求教高手,TKS!

论坛徽章:
0
2 [报告]
发表于 2006-09-18 20:01 |只看该作者
就会用awk的
awk '
$1~/sn:/{aa=$2;flag=1}
$1~/cn:/&&flag==1{$0=$1" "aa;flag=0}
{print $0}
' 1.txt

[ 本帖最后由 shitou9000 于 2006-9-18 20:31 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2006-09-18 20:44 |只看该作者
sed -n -e '/sn/h' -e '/cn/{
x
s/sn/cn/
}' -e 'p' urfile

试了下,可以,竟然,哈哈

论坛徽章:
0
4 [报告]
发表于 2006-09-18 21:03 |只看该作者
原帖由 月波无漾 于 2006-9-18 20:44 发表
sed -n -e '/sn/h' -e '/cn/{
x
s/sn/cn/
}' -e 'p' urfile

试了下,可以,竟然,哈哈


兄弟,unterminated 's' command

论坛徽章:
0
5 [报告]
发表于 2006-09-18 21:17 |只看该作者
原帖由 zmkun 于 2006-9-18 21:03 发表


兄弟,unterminated 's' command

HP-UX;


  1. $ cat sncn
  2. sn: 1234556
  3. cn:
  4. sn: 379482784
  5. cn:
  6. sn: 7849834
  7. cn:
  8. $ sed -n -e '/sn/h' -e '/cn/{
  9. > x
  10. > s/sn/cn/
  11. > }' -e 'p' sncn
  12. sn: 1234556
  13. cn: 1234556
  14. sn: 379482784
  15. cn: 379482784
  16. sn: 7849834
  17. cn: 7849834
  18. $
复制代码

命令行是3行的

[ 本帖最后由 月波无漾 于 2006-9-18 21:19 编辑 ]

论坛徽章:
0
6 [报告]
发表于 2006-09-18 22:58 |只看该作者
awk '/^sn:/{toadd=$2}/^cn:/{$0=$0" "toadd}{print}'

[ 本帖最后由 sosogh 于 2006-9-19 00:56 编辑 ]

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
7 [报告]
发表于 2006-09-19 00:45 |只看该作者
原帖由 月波无漾 于 2006-9-18 20:44 发表
sed -n -e '/sn/h' -e '/cn/{
x
s/sn/cn/
}' -e 'p' urfile


试了下,可以,竟然,哈哈

1行就可以

  1. sed -e '/sn/h' -e '/cn/{x;s/sn/cn/}'
复制代码

论坛徽章:
0
8 [报告]
发表于 2006-09-19 08:17 |只看该作者
原帖由 寂寞烈火 于 2006-9-19 00:45 发表

1行就可以

  1. sed -e '/sn/h' -e '/cn/{x;s/sn/cn/}'
复制代码

可是我这里写成一行怎么不可以啊,开始也想着一行,但是提示
sed: Function /cn/{x;s/sn/cn/} cannot be parsed
才写成3行的

论坛徽章:
0
9 [报告]
发表于 2006-09-19 22:58 |只看该作者
原帖由 月波无漾 于 2006-9-19 08:17 发表

可是我这里写成一行怎么不可以啊,开始也想着一行,但是提示
sed: Function /cn/{x;s/sn/cn/} cannot be parsed
才写成3行的


搞定了

兄弟,你的少了一个;

你的系统真的能通过吗?

不过还是很感谢,多了解了一些sed的用法
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP