Prayer

在一般中寻求卓越
posts - 1256, comments - 190, trackbacks - 0, articles - 0
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

sed的读取指令N与n

Posted on 2010-01-19 10:32 Prayer 阅读(1149) 评论(0)  编辑 收藏 引用 所属分类: Shell

echo -e "1\n2\n3\n4" | sed -n 'N;s/\n/ /;p'
sed
先读入第一行到pattern space,然后执行N命令,将第二行追加进pattern space
这时pattern space里面就是1\n2,然后执行s/\n/ /,将换行符替换成空格,最后打印。

echo -e "1\n2\n3\n4" | sed -n 'n;s/\n/ /;p'
sed
先读入第一行到pattern space,然后执行n命令,用第二行覆盖pattern space
这时pattern space里面就是2,然后执行s/\n/ /,因为pattern space里没有\n,所以不做任何替换,直接打印

 

如果sed的模式空间对应awk$0
N
相当于awk{v=$0;next;$0=v"\n"$0}
n
相当于awknext

shell来比喻的话
N
:  echo 下一行内容>>模式空间
n
:  echo 下一行内容>模式空间


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理