我需要从数 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