我想 grep 一个单词,然后找到该行中的第二列并检查它是否大于一个值。是的,我想打印上一行。

前任:

输入文件

AAAAAAAAAAAAA
BB  2
CCCCCCCCCCCCC
BB 0.1

输出
AAAAAAAAAAAAA

现在,我想搜索 BB,如果该行中的第二列(2 或 0.1)大于 1,我想打印前一行。

有人可以帮助我使用 grep 和 awk 吗?谢谢。也欢迎任何其他建议。谢谢。

最佳答案

这可以是一种方式:

$ awk '$1=="BB" && $2>1 {print f} {f=$1}' file
AAAAAAAAAAAAA

解释
  • $1=="BB" && $2>1 {print f} 如果第一个字段恰好是 BB 并且第二个字段大于 1 ,则打印 184 存储的值 0x2341。
  • f 将当前行存储在 {f=$1} 中,以便读取下一行时可以访问。
  • 关于linux - 如果条件满足则打印上一行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27740937/

    10-13 07:23