我想grep一个单词,然后找到该行中的第二列,并检查它是否大于一个值.是的,我想打印上一行.
例如:
输入文件
AAAAAAAAAAAAA
BB 2
CCCCCCCCCCCCC
BB 0.1
Run Code Online (Sandbox Code Playgroud)
产量
AAAAAAAAAAAAA
Run Code Online (Sandbox Code Playgroud)
现在,我想搜索BB,如果该行中的第二列(2或0.1)大于1,我想打印上一行.
有人可以用grep和awk帮我吗?谢谢.任何其他建议也欢迎.谢谢.
fed*_*qui 17
这可以是一种方式:
$ awk '$1=="BB" && $2>1 {print f} {f=$1}' file
AAAAAAAAAAAAA
Run Code Online (Sandbox Code Playgroud)
$1=="BB" && $2>1 {print f}如果第一个字段是精确的BB并且第二个字段大于1,则打印f一个存储的值.{f=$1}存储当前行f,以便在读取下一行时可以访问它.另一个选择:如果条件匹配,则反转文件并打印下一行:
tac file | awk '$1 == "BB" && $2 > 1 {getline; print}' | tac
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8490 次 |
| 最近记录: |