免费注册 查看新帖 |

Chinaunix

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

sed --- n , N [复制链接]

论坛徽章:
0
31 [报告]
发表于 2008-08-03 16:02 |只看该作者
原帖由 eeeef 于 2008-8-3 15:47 发表
这个命令使用的极少,实用性不高。还是别琢磨了。

请用sed在一个文件的回车替换成|。
注意,不能用tr或者xargs,只能用sed。

论坛徽章:
0
32 [报告]
发表于 2008-08-03 16:03 |只看该作者

回复 #30 eeeef 的帖子

以后碰到再解决吧

论坛徽章:
0
33 [报告]
发表于 2008-08-03 16:08 |只看该作者

回复 #31 walkerxk 的帖子

sed ':a;N;s/\n/\|/;ta'

[ 本帖最后由 爱知 于 2008-8-3 16:09 编辑 ]

论坛徽章:
0
34 [报告]
发表于 2008-08-03 16:14 |只看该作者
好像 head,tail,cat,tac,rev
都可以用 sed 替换

论坛徽章:
0
35 [报告]
发表于 2008-08-03 16:16 |只看该作者
原帖由 爱知 于 2008-8-3 16:08 发表
sed ':a;N;s/\n/\|/;ta'

我问的是eeeef,不是你,你这么积极干嘛

论坛徽章:
0
36 [报告]
发表于 2008-08-03 16:18 |只看该作者
原帖由 爱知 于 2008-8-3 16:14 发表
好像 head,tail,cat,tac,rev
都可以用 sed 替换

是的,但是效率会下降,通用性的东西效率总是低。

论坛徽章:
0
37 [报告]
发表于 2008-08-03 16:20 |只看该作者

回复 #35 walkerxk 的帖子

理解有误,^_^

我想问你个问题
以下代码为什么不给以上答案一样呢?

  1. $cat a
  2. hello
  3. world
  4. hello
  5. world
  6. $sed -n ':a;N;ta;s/\n/\|/g;p' a
  7. hello|world
  8. hello|world
  9. $
复制代码

^_^

论坛徽章:
0
38 [报告]
发表于 2008-08-03 16:31 |只看该作者
因为你把ta放错位置了,
而且为什么要-n ':a;N;ta;s/\n/\|/g;p'呢?直接用':a;N;ta;s/\n/\|/g'就行了。
正确的写法是:':a;N;s/\n/\|/g;ta'

论坛徽章:
0
39 [报告]
发表于 2008-08-03 16:36 |只看该作者

回复 #38 walkerxk 的帖子

谢谢
以上不同应该是与 N 的用法有关吧
是不是这样: N 把文本下一行内容追加到模式空间,但只允许模式空间被追加前中不含有一个‘\n’,否则把模式空间的内容打印出来

[ 本帖最后由 爱知 于 2008-8-3 16:44 编辑 ]

论坛徽章:
0
40 [报告]
发表于 2008-08-03 17:04 |只看该作者
原帖由 walkerxk 于 2008-8-3 16:16 发表

我问的是eeeef,不是你,你这么积极干嘛


晕,慌着投简历去了,被别人抢了。
这个试试:
seq 10 | sed 'H;$!d;g;s/\n//;s/\n/|/g'


总体来说,我明白walkerxk的意思了,就是反驳我的无用论,让我非用t不可。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP