仅显示在 vi 编辑器中找到匹配模式后的几行

仅显示在 vi 编辑器中找到匹配模式后的几行

我只想first 5 lines after the match found在 vi 编辑器中查看。命令是什么?

我只知道这些命令

/Incident Id: 给出从第一行到最后一行的所有行

:g/Incident ID: 仅给出匹配的单词,隐藏所有不匹配的单词

但是如何在找到匹配词后显示前 5 行……?


例子预期输出:

我有 8 行文本,我搜索事件编号

    Incident ID: 1392875740716  <<<Match word here
    URL: /Project/jsps/ErrorPage.jsp
    java.lang.NullPointerException
            at java.util.Calendar.setTime(Calendar.java:1092)
            at com.cando.restaurant.utils.DateRange.createForWeek(DateRange.java:54)
            at org.springframework.transaction.interceptor.TransactionInterceptor :110)
            at org.springframework.aop.framework.ReflectiveMethodInvocation 
            at org.springframework.aop.interceptor.ExposeInvocationInterceptor 

预期输出

  Incident ID: 1392875740716  <<<Match word here
    URL: /Project/jsps/ErrorPage.jsp
    java.lang.NullPointerException
            at java.util.Calendar.setTime(Calendar.java:1092)
            at com.cando.restaurant.utils.DateRange.createForWeek(DateRange.java:54)

答案1

假设你打开一个名为 vi 的文件abcd。为了只显示前 5 行,你将使用,

vi ./abcd |head -5 

如果所有输出都视为单行,则使用

vi ./abcd | sed s/\n/\n./g | head -5

此命令将在每个换行符处添加一个点。

相关内容