文件中特定行的行号

文件中特定行的行号

我对 bash 编程还很陌生,我正在尝试找出一种方法,从相当长的日志文件中“grepping”出具有特定模式的一行,然后从我刚刚得到的行开始grep -w "pattern" filename。我需要到达 grep-line 之前的一行。

我以为我可以通过行号访问它,但我似乎只能找到通过行号读取某一行的解决方案,如果我已经知道该行号是什么。

有任何想法吗?

答案1

您可以告诉grep输出额外的行语境围绕每条匹配的线例如

grep -w "pattern" -A5 filename

匹配后的 5 行上下文,或

grep -w "pattern" -B5 filename

比赛开始前 5 行背景信息,或者

grep -w "pattern" -C5 filename

前后上下文各 5 行。因此,对于你的情况,你可以这样做

grep -w "pattern" -B1 filename | head -1

查找“模式”并打印上下文的单行前导行,然后仅使用 打印上下文行。使用或代替 的head其他解决方案也是可能的。awksedgrep

相关内容