忘记密码   免费注册 查看新帖 | 论坛精华区

ChinaUnix.net

  平台 论坛 博客 认证专区 大话IT HPC论坛 徽章 文库 沙龙 自测 下载 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
12
最近访问板块 发新帖
楼主: bartzhangsh

[文本处理] 在conf=abcd的后面加入字符串 [复制链接]

论坛徽章:
2
程序设计版块每日发帖之星
日期:2016-05-03 06:20:0015-16赛季CBA联赛之同曦
日期:2017-09-11 14:39:48
发表于 2017-09-12 16:29 |显示全部楼层
回复 10# bartzhangsh

8楼的代码没问题,输出符合你的要求。你写的代码才有问题,你的代码中c命令是替换,把conf=a|b|1 2 * 4,5; 都替换掉了。
  1. echo 'conf=a|b|1 2 * 4,5;'|sed 's/^conf=.*$/&c|d|1 2,3 * ?;e|f| 3 4 *;/'
复制代码

论坛徽章:
0
发表于 2017-09-12 16:59 |显示全部楼层
回复 11# wh7211

但是conf=xxx最后有一个^M,如果按照8楼的做发,这个^M就会在加入的字符串之前,这样,加入的字符串就是换行了.实际上不要换行.
所以,我才想用c参数来删除 conf=开头的行,再重新输入.
用s参数,直接替换,没法解决^M的问题.

论坛徽章:
2
程序设计版块每日发帖之星
日期:2016-05-03 06:20:0015-16赛季CBA联赛之同曦
日期:2017-09-11 14:39:48
发表于 2017-09-12 18:08 |显示全部楼层
回复 12# bartzhangsh

先做文件格式转换,把dos格式的文件转换成unix格式,再执行sed。

  1. dos2unix file
  2. sed 's/^conf=.*$/&c|d|1 2,3 * ?;e|f| 3 4 *;/' file
复制代码

论坛徽章:
0
发表于 2017-09-18 18:04 |显示全部楼层
回复 13# wh7211

谢谢,^m应该就是unix的字符没办法解决.后来用删除,在增加的办法.
不好.但是来不及了.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802020122
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP