如何在列下grep值


0

如何grep特定列名称并显示该列下面的值。

样本数据:

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

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

谢谢

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

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%  

Answers:


0

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

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

但是我的文件格式如下:ConnectStatus ConnectTime Timeout Connected Tue 2014年5月20日09:34:23(1400592863)120 0 PrimaryFile PrimaryPg PrimaryLSN S0082160.LOG 621668 0x00000C85118BC72D StandByFile StandByPg StandByLSN StandByRcvBufUsed S0082160.LOG 621668 0x00000C85118BC72D 0%
user327963

1
请使用此信息更新您的问题,在评论中很难看到代码。
fedorqui 2014年

所以给定这个文件,你需要输出的是什么,@ user327963?
fedorqui 2014年

我想看看StandByRcvBufUsed下的值,在这种情况下为0%。谢谢
user327963 2014年

好的,@ user327963看到我更新的答案。现在它成功了。
fedorqui 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.