Sed高级命令之N和D
多行模式空间
模式匹配是面向行的,但是有时很难匹配到一个在一行的结尾处开始,并在下一行的开始除结束的短语,见到来讲就是,假如在第一行因为内容过多,在第一行的行尾有个短语不能完全显示在第一行,这个短语的一部分会在第二行显示,这样在匹配的时候就无法完整的匹配到这个短语。这时多行模式空间就可以解决这个问题
以下简单举个例子解释以下上面的观点
//本来complete是一个完整的词,但是因为第一行内容过多不能完整显示,一部分在第二行显示,这是就可以使用多行模式空间
[root@localhost ~]# cat test
this is a test file , if this first line not display compl
ete , use next
追加下一行Next(N)
- 多行Next(N)命令通过读取新的输入行,并将新的输入行添加到模式空间的现有内容之后创建多行模式空间。
- 模式空间最初的内容和新的输入行之间用换行符分隔
- 换行符可以利用转义序列’\n’来匹配
以下举例演示N:
//不使用N来匹配内容
[root@localhost ~]# sed -n '/compl/p' test
this is a test file , if this first line not display compl
//使用N来匹配,把第二行添加到模式空间,创建多行模式空间
[root@localhost ~]# sed -n '/compl/N;p' test
this is a test fil