Как я могу 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 ответ1

0

Давайте посмотрим на номер столбца, который содержит StandByRcvBufUsed и сохраним его. Затем перейдите к следующей строке, напечатайте этот столбец и, наконец, выйдите:

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .