免费注册 查看新帖 |

Chinaunix

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

一行变两行,用sed的话怎么弄 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-03-16 14:47 |只看该作者 |倒序浏览
比方说 111112  
我想变成
11111
2
用sed的话怎么实现啊 sed ‘s/2/\\t2/g'  直接把\t打出来了

谢谢啊  不用sed用别的也行


ps
我如果用楼下的兄弟提供的方法的话  echo "11112" | sed 's/2/\n&/g'
打出来是 1111n2

我的目的是在一行中从2开始的地方分行  
比如111112  我需要变成
11111
2

如果是aaa2111我需要变成
aaa
2111

我只知道从2开始的地方重新开始一行,  而2前边和后边是什么东西我都不确定,并且我的sed不支持\n,  不知道什么原因!

谢谢楼下的兄弟,谁有更好的办法啊 啊  啊

[ 本帖最后由 testtest11 于 2009-3-17 12:35 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2009-03-16 14:49 |只看该作者
[root@bj_manager ~]# echo "11112" | sed 's/2/\n&/g'
1111
2
[root@bj_manager ~]#

论坛徽章:
0
3 [报告]
发表于 2009-03-16 14:55 |只看该作者
sed -r 's/(.)$/\n\1/'

论坛徽章:
0
4 [报告]
发表于 2009-03-16 14:59 |只看该作者

回复 #1 testtest11 的帖子

[root@]# echo "111112"|sed 's/.$/\n&/'
11111
2

论坛徽章:
0
5 [报告]
发表于 2009-03-16 15:01 |只看该作者
估计是楼主的\n不支持,我这里也一样。分行写一下看看......

echo 111112 | sed 's/\(1*\)/\1\      
> /'

论坛徽章:
0
6 [报告]
发表于 2009-03-16 15:02 |只看该作者
[root@0609-0087 ~/cafe/sh-script]# echo 11111222 | awk '
{sub(/2/, "\n&");print;}'
11111
222
[root@0609-0087 ~/cafe/sh-script]# echo 11111222 | perl -pe '
> $_ =~ s/2/\n$&/'
11111
222

论坛徽章:
0
7 [报告]
发表于 2009-03-16 15:16 |只看该作者
最后一个字符前换行
awk '{print gensub(/(.*)(.)$/,"\\1\n\\2",1)}'

论坛徽章:
0
8 [报告]
发表于 2009-03-16 15:29 |只看该作者
qa $iEnterESCj q        执行linenum@a   (vi里用)

[ 本帖最后由 justlooks 于 2009-3-16 15:32 编辑 ]

论坛徽章:
0
9 [报告]
发表于 2009-03-16 15:31 |只看该作者
没看明白lz到底要问什么,如果就你所问来说,楼上几位的回答完全可以解决你的问题啊。

把你的问题描述清楚一些。

论坛徽章:
0
10 [报告]
发表于 2009-03-16 15:41 |只看该作者

学习

学习
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP