免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: bjchenxu
打印 上一主题 下一主题

sed中如何替换出新行来  关闭 [复制链接]

论坛徽章:
1
巳蛇
日期:2014-12-29 11:22:41
11 [报告]
发表于 2002-08-19 14:46 |只看该作者

sed中如何替换出新行来

没有版主的提示,也就没有这个答案,呵呵
再次感谢valentine

论坛徽章:
1
巳蛇
日期:2014-12-29 11:22:41
12 [报告]
发表于 2002-08-19 15:53 |只看该作者

sed中如何替换出新行来

再减少几个字吧,呵呵

如果使用sed的话
sed 's/...../&@/g' file | tr '@' '\n'
如果想每m个字符换行
sed 's/.\{m,m\}/&@/g' file | tr '@' '\n'

论坛徽章:
1
巳蛇
日期:2014-12-29 11:22:41
13 [报告]
发表于 2002-08-19 16:44 |只看该作者

sed中如何替换出新行来

[这个贴子最后由bjchenxu在 2002/08/19 04:50pm 编辑]

本贴为我想出的本主题的答案:不用tr也能解决问题

原文件名test,仅一行
hellohellohello

要求结果:
hello
hello
hello

答案:
我edit一个脚本文件
sedfile
内容为
s/hello/\
&/g

运行命令
sed -f sedfile test即可增加新行

   

论坛徽章:
0
14 [报告]
发表于 2002-08-19 16:44 |只看该作者

sed中如何替换出新行来

真是vi高手,我虽然不是高手,但是我喜欢vi

论坛徽章:
0
15 [报告]
发表于 2002-08-19 17:24 |只看该作者

sed中如何替换出新行来

[这个贴子最后由valentine在 2002/08/19 05:32pm 编辑]

bjchenxu 精神可嘉啊.
不过这样更符合要求一些:
sedfile
内容改为
s/hello/&\
/g

这样算是彻底的sed答案了.
哈哈,俺也学到新东西了.好象&用起来比\(\)的子表达式形式简单啊.不过,不太好理解.
也谢谢bjchenxu .

论坛徽章:
0
16 [报告]
发表于 2002-08-20 09:04 |只看该作者

sed中如何替换出新行来

[这个贴子最后由valentine在 2002/08/20 09:30am 编辑]

更准确的答案在这里,(看来俺开始回答的草率了些,不过tr的方法也是一种思路)
ksh:
sed 's/hello/&\^J/g' test
or
sed 's/hello/hello\^J/g' test

^J的输入是ctrl+V ctrl+J
Bourne shell:

sed 's/hello/&\
/g' test

\后是回车.

论坛徽章:
1
巳蛇
日期:2014-12-29 11:22:41
17 [报告]
发表于 2002-08-20 09:20 |只看该作者

sed中如何替换出新行来

[这个贴子最后由bjchenxu在 2002/08/20 09:24am 编辑]

怪哉
此方法在solaris 9的csh中不行,但是在bash下却可以

另外,在bash中,可以直接回车,不用ctrl_v + ctrl_j,hehe

论坛徽章:
0
18 [报告]
发表于 2002-08-20 09:32 |只看该作者

sed中如何替换出新行来

Bourne shell也是回车.我忘了写了,现在加上了.
csh俺一直不喜欢.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP