如何 Grep 到特定字符或字符串

如何 Grep 到特定字符或字符串

我需要从数 TB 的日志文件中提取日志数据。问题是,我需要的数据以我可以识别的模式开始和结束,但其间的代码可以是 10 到 100 多行。

例子:

Start
# lots of lines here
End

目前,我所做的是grep -A 50 "Start",它给出了开始和其后的 50 行。然而,在几乎所有情况下,这都比我需要的多或少。多意味着生成的报告文件比它需要的要大,少意味着我没有得到我需要的信息。

有没有办法使用标准 Unix / Linux 工具来提取我需要的内容?

答案1

用 awk 尝试一下:

awk '/^Start/,/^End/' file

或者如果你更喜欢 sed:

sed -n '/Start/,/End/p' file

相关内容