分享

sed的读取指令N与n

 ylzrx 2012-06-12

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 下一行内容>模式空间

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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多