linux - 使用 GREP 命令后仅打印上一行

标签 linux grep

<分区>

我想在某个文件中搜索特定的字符串。一旦找到,我只想打印 grep 行的前一行,而不是使用 grep 命令获得的行。

命令:grep -B 1 line5

Ex:
lin1 with some text
lin2
lin3
lin4
lin5 with some text

输出将是

lin4
lin5 with some text

但是有什么解决方案可以让我只获得 lin4 而不能获得 lin5。

提前感谢您的帮助。

最佳答案

  1. 匹配后显示N行
    -A 是在匹配后打印指定 N 行的选项,如下所示。
    语法:

    grep -A <N> "string" FILENAME
    
  2. 匹配前显示N行
    -B 是选项,在匹配前打印指定的 N 行。
    语法:

    grep -B <N> "string” FILENAME
    
  3. 在匹配项周围显示 N 行 -C 是选项,它在匹配前打印指定的 N 行。在某些情况下,您可能希望比赛双方都出现线条。此选项在匹配的两侧(之前和之后)显示 N 行。

    $ grep -C 2 "Example"  FILENAME
    

关于linux - 使用 GREP 命令后仅打印上一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34305571/

相关文章:

regex - Bash:如何为同一字符串的多个实例 grep 一行?

linux - 如果 sed 和 grep 操作为真,则打印部分行

linux - 屏幕距离不好

linux - 这个shell脚本有什么错误

c - Linux c 应用程序内存使用

linux - ftdi d2xx 与 Linux 上的 ftdi_sio 冲突 - 如何自动删除 ftdi_sio

linux - bash 脚本搜索特定/用户的服务器/然后删除

linux - AWK 的多个字段分隔符

bash - 将文件中每一行的单词填充到临时数组中

grep - 如何 grep 隐藏文件?