分享

sed n,N和p,P的区别

 ylzrx 2012-06-12

  
读取下一个输入行,用下一个命令处理新的行而不是用第一个命令。 
 
 
追加下一个输入行到模板块后面并在二者间嵌入一个新行,改变当前行号码。 
 

打印模板块的行。 

P

打印模板块的第一行
 
举个例子说明一下: 
 
一个:n命令  
$ sed '/test/{ n; s/aa/bb/; }' example-----如果test被匹配,则移动到匹配行的下一行,替换这一行的aa,变为bb,并打印该行,然后继续。 

 

  多行空间与单行空间的区别
sed 首先将整个编辑脚本应用于第一个输入行,然后在读取第二个输入行并对其应用整个脚本,这些读入的行都放在一块内存中,忘了官方的叫啥名字了,暂时叫做缓冲空间吧。
   echo -e "1111\n2222" | sed -n 'n;/1111/p'
首先sed读入1111这一行 然后执行n这个命令 于是读入下一行2222   此时 缓冲空间的内容为 2222  然后执行/1111/p
而echo -e "1111\n2222" | sed -n 'N;/1111/p'
首先sed读入1111这一行 然后执行N这个命令 于是读入下一行2222   此时 缓冲空间的内容为 1111\n2222  然后执行/1111/p

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多