linux - 在linux上分析多行

标签 linux unix

我必须在 linux 中创建一个只显示 .txt 文件的一部分的命令(因此没有脚本)。我已经搜索了 grep 和 sed 的手册页,但它们一次只分析一行(如果我没记错的话),所以这不是我想要的。

我要显示的文件部分的开始和结束标记如下:

*** START OF... ***
...
*** END OF... ***

我不能使用 head 和 tail 命令,因为我不知道这些行在文件中的确切位置。

最佳答案

$ sed -ne '/START OF/,/END OF/p' << EOF
> 2 3 5
> 3 4 7
> *** START OF ... ***
> 1 2 3
> 2 3 5
> 3 4 7
> 4 5 9
> *** END OF ... ***
> 2 3 5
> 3 4 7
> EOF
*** START OF ... ***
1 2 3
2 3 5
3 4 7
4 5 9
*** END OF ... ***

EOF 在这里文档,请参阅 wikipedia获取更多信息。 -e 表示下一个参数将被视为文件名以外的命令。

关于linux - 在linux上分析多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34630032/

相关文章:

c - 如何获取execlp的退出代码

linux - open() 是从 libc 源代码的哪个位置获得链接的?

linux - 无法将标准输出重定向到完整路径指定的文件

c - unix:C 中的 main() 交互、命令行、管道和重定向?

c - "tee"类似UNIX中的编程api

linux - Golang exec 进程并否认它

c - 当进程连续写入文件时如何清空文件

unix - XML 文件的长度

c - 如何在linux中通过C程序打开新终端

java - 如果Java进程在Unix(Solaris)/Windows中被杀死,所使用的内存是否会被释放?