如何用sed命令匹配模式行并复制该行及后续n行至目标文件
使用Sed复制匹配行及后续指定行数的内容
要实现匹配含01- 的行并同时复制它的下一行,直接用sed的N命令即可,命令如下:
sed -n '/01- /{N;p}' original.txt > copyof.txt
命令解释
-n:关闭默认的全行打印,只输出我们指定的内容/01- /:定位到包含01-的目标行{N;p}:匹配到目标行后,N命令会把下一行读取到当前模式空间,p命令则打印整个模式空间(也就是目标行+下一行)
扩展:匹配行及后续n行的通用写法
如果需要复制匹配行及后续n行(比如n=2,即目标行+后面2行,共3行),可以用多次n;p组合:
# n=2的情况:打印匹配行+后续2行 sed -n '/01- /{p;n;p;n;p}' original.txt > copyof.txt
如果要打印匹配行到文件末尾的所有内容,用循环标签实现更灵活:
sed -n '/01- /{:a;p;n;$!ba}' original.txt > copyof.txt
内容的提问来源于stack exchange,提问作者Rizwan.A
相关产品推荐
相关产品推荐

