gpt4 book ai didi

linux - 快速 unix 命令在文件中间显示特定行?

转载 作者:IT老高 更新时间:2023-10-28 12:20:20 33 4
gpt4 key购买 nike

尝试调试服务器问题,我唯一的日志文件是 20GB 的日志文件(甚至没有时间戳!为什么人们使用 System.out.println() 作为日志记录?在生产中?!)

使用 grep,我找到了我想查看的文件区域,第 347340107 行。

除了做类似的事情

head -<$LINENUM + 10> filename | tail -20 

... 这将需要 head 读取日志文件的前 3.47 亿行,是否有一个快速简便的命令可以将行 347340100 - 347340200(例如)转储到控制台?

update 我完全忘记了 grep 可以在匹配项周围打印上下文……这很好用。谢谢!

最佳答案

我找到了另外两个 solutions如果您知道行号但没有其他信息(无法使用 grep):

假设您需要第 20 到 40 行,

sed -n '20,40p;41q' file_name

awk 'FNR>=20 && FNR<=40' file_name

当使用 sed 时,打印最后一行后退出处理比继续处理直到文件末尾更有效。这在开始时大文件和打印行的情况下尤其重要。为了做到这一点,上面的 sed 命令引入了指令 41q 以便在第 41 行之后停止处理,因为在示例中我们只对第 20-40 行感兴趣。您需要将 41 更改为您感兴趣的最后一行,加一。

关于linux - 快速 unix 命令在文件中间显示特定行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/191364/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com