処理されたクエリから次の詳細を取得します。
queuename qtype resv/used/tot. np_load arch states
---------------------------------------------------------------------------------
abax55@lp55cs008 BP 0/36/36 1.08 lx-amd64
gf:app_monitor=1
gf:app_abaqus=1
gf:app_abaqusfgs=1
gf:app_actran=1
hl:load_avg=38.980000
hl:load_short=38.550000
hl:load_medium=38.980000
hl:load_long=39.030000
私はhl:load_avg=38.980000
プレフィックスを使ってgrepをしたいと思いますabax55@lp55cs008
。これは、出力が次のようになることを意味します。
abax55@lp55cs008 - hl:load_avg=38.980000
....これは名前付きシステムでのみ機能しますcs008
。マシンの総数は100台を超えます。
2つのオプションを提案してください:
- 特定のマシンに対してのみgrep、
- すべてのマシンをgrepするために使用されます。
ベストアンサー1
Awk
解決策:
1) grep 特定のマシンのみ:
awk -v m="cs008" '/abax55@lp55cs[0-9]/ && $1 ~ m{ m_name=$1 }
m_name && /hl:load_avg=/{ print m_name" - "$1; exit }' file
出力:
abax55@lp55cs008 - hl:load_avg=38.980000
2) grep すべてのマシンの場合:
awk '/abax55@lp55cs[0-9]/{ m_name=$1 }
m_name && /hl:load_avg=/{ print m_name" - "$1; m_name=0 }' file