问: 一个N 是处理 2行吗? 两个N 就是处理4行吗?
N是把当前处理行的下一行追加到模式空间(内存),再增加一个N指令,是再增加一行进来,不是4行。
问: 为啥说 sed 'N;s/\n//' 匹配不到最后一个换行符?不是每行都有换行符吗?为啥只会匹配第一行的\n ,不匹配
第二行的\n呢?
N命令规定要读取到下一行,才会继续执行它后面的s命令。
如果当前处于文件的最后一行,执行N命令后,sed会因为到达文件的结尾EOF,N命令会执行失败,导致N后面的s命令不执行。
参考
sed多行模式空间
https://time.geekbang.org/course/detail/100029601-128774
sed 的高级命令---多行模式空间(N D P)篇
http://blog.chinaunix.net/uid-25512517-id-285197.html
SED多行模式空间
https://www.cnblogs.com/nhlinkin/p/3566619.html
sed 的保持空间和模式空间的交换用法(H h;G g; x)
http://blog.chinaunix.net/uid-25512517-id-291147.html
sed 多行处理详细总结
https://www.cnblogs.com/liqiu/p/4507762.html
网友评论