如何对列下的值进行 grep

如何对列下的值进行 grep

我如何才能 grep 特定的列名并显示该列下方的值。

样本数据:

StandByFile  StandByPg  StandByLSN         StandByRcvBufUsed
S0082160.LOG 621668     0x00000C85118BC72D 0%  

我想在列0%下显示StandByRcvBufUsed。请注意,文件包含与上面显示的列不同的其他数据,这意味着文件中不同行上的列表不同。

谢谢

更新:
我的文件具有以下格式,因此列号不是固定的:

HADR Information:
Role    State                SyncMode   HeartBeatsMissed   LogGapRunAvg (bytes)
Standby Peer                 Async    0                  365000              

ConnectStatus ConnectTime                           Timeout   
Connected     Tue May 20 09:34:23 2014 (1400592863) 120       

ReplayOnlyWindowStatus ReplayOnlyWindowStartTime             MaintenanceTxCount
Inactive               N/A                                   0         


PrimaryFile  PrimaryPg  PrimaryLSN        
S0082160.LOG 621668     0x00000C85118BC72D

StandByFile  StandByPg  StandByLSN         StandByRcvBufUsed
S0082160.LOG 621668     0x00000C85118BC72D 0%  

答案1

让我们查找包含的列号StandByRcvBufUsed并存储它。然后跳到下一行并打印该列并最后退出:

$ awk 'f{print $f; exit} {for (i=1; i<=NF; i++) if ($i == "StandByRcvBufUsed") {f=i; next}}' file
0%

相关内容