我有一些文本文件,我想从中提取一段代码。我试图实现的目标是在某一行开始视图,然后能够读取它下面的任何内容。例如。在下面的文本中,如何查看黄色起点处的文本文件。我想查看“黄色”的内容以及它下面的所有内容,无论该内容是什么。
green
blue
cyan
magenta
purple
brown
yellow
red
orange
more orange
more blue
this is enough
我有一些文本文件,我想从中提取一段代码。我试图实现的目标是在某一行开始视图,然后能够读取它下面的任何内容。例如。在下面的文本中,如何查看黄色起点处的文本文件。我想查看“黄色”的内容以及它下面的所有内容,无论该内容是什么。
green
blue
cyan
magenta
purple
brown
yellow
red
orange
more orange
more blue
this is enough
AWK 使用
AWK
- 这是最简单的方法:样品运行
格雷普
您还可以使用
grep
with--after-context
选项,在匹配后打印一定数量的行对于上下文的自动设置,您可以使用
$(wc -l textfile.txt)
. 基本思想是,如果您有第一行作为匹配项,并且您想打印该匹配项之后的所有内容,则需要知道文件中的行数减 1。幸运的是,--after-context
不会抛出关于行数的错误行,所以你可以给它完全超出范围的数字,但如果你不知道,总行数就可以了如果要缩短命令与和
--after-context
相同的选项,将扩展为行数后跟文件名。所以这样你只输入一次-A
$(wc -l textfile.txt)
textfile.txt
Python
或者没有
printable
标志你可以这样做:
其中“file”是包含您的文本的文件名。
不是
grep
,而是使用sed
:-n
: 禁止打印/^yellow$/,$
:地址范围,从第一次出现完全匹配的行yellow
到最后一行(含)p
:打印地址范围内的行派对迟到了:)
使用
grep
:-P
使我们能够使用 Perl 兼容的 Regex-z
使输入文件由 ASCII NUL 分隔,而不是换行符-o
只取所需的部分(?s)
是 DOTALL 修饰符,使我们能够使用标记.
(任何字符)匹配换行符在
\n\K
,\n
匹配一个换行符,\K
丢弃匹配yellow\n.*
匹配yellow
后跟换行符,之后的所有内容也被选中并显示在输出中。例子:
使用很少
python
:lines
是包含文件所有行的列表(也带有尾随换行符)lines.index('yellow\n')
给我们找到的lines
最低yellow\n
索引lines[lines.index('yellow\n'):]
将使用列表切片来获取从开始yellow\n
到结束的部分join
将连接列表的元素以输出为字符串由于问题是指查看文件,所以总是有好的 ol'