フィルタ出力

フィルタ出力
for i in $(cat HPE_FRAMES_IP); do  ssh Reports@$i showsys | awk '{print $2,$5}' | column -t ; ssh Reports@$i showpd -degraded -failed | awk '{print $1,$2,$3,$5}' ; done | grep -v "MiB" | grep -v "total"
--Name---  Nodes
AN4ZX8401  MXN6232L4X
No PDs listed
----Name-----  Nodes
bga1ZX84-3128  4C17253128
No PDs listed
---Name---  Nodes
ZZ2ZX20841  CZ3741XP9X
No PDs listed
--Name---  Nodes
ZZ2ZX8401  MXN6102C7F
No PDs listed
--Name---  Nodes
ZZ2ZX8402  2MT814A12A
No PDs listed
--Name---  Nodes
CR3ZX8401  2M263601BJ
Id CagePos Type State
175 9:15:0 FC failed
---Name---  Nodes
ZZZZX20841  CZ3741X5K8
Id CagePos Type State
18 4:2:0 SSD degraded
-------Name-------  Nodes
ZZZZX8401_Full_DNA  MXN54823JY
No PDs listed
--Name---  Nodes
ZZZZX8402  MXN6102CAF
No PDs listed
-------Name-------  Nodes
ZZZZX8403_Full_DNA  MXN6192JEW
No PDs listed

次のコードは目的の出力を提供しますが、次の形式を使用してこの出力をCSVファイルにリダイレクトする必要があります。

showpdおよびshowsysコマンドの実際の出力が低下または失敗した場合にのみ出力を印刷したいと思います。

必要な出力は次のようになります。

--Name---,Nodes
CR3ZX8401,2M263601BJ
Id,CagePos,Type,State
175,9:15:0,FC,failed

---Name---,Nodes
ZZZZX20841,CZ3741X5K8
Id,CagePos,Type,State
18,4:2:0,SSD,degraded

質問は次のように更新されます。

showpd出力にはパフォーマンスが低下し、失敗した出力が複数ある場合がありますが、この場合-B3を使用した印刷は機能しません...

'---Name---,Nodes 
FM1HP20841,CZ3741X5K8 
Id,CagePos,Type,State 
18,4:2:0,SSD,degraded 
18,4:2:1,SSD,failed 

ベストアンサー1

この試み、

for i in $(cat HPE_FRAMES_IP); do ssh Reports@$i showsys | awk '{print $2","$5}' ; ssh Reports@$i showpd -degraded -failed | awk '{print $1","$2","$3","$5}' ; done | grep -v "MiB" | grep -v "total" | egrep -B3 "failed|degraded" | sed 's/---Name/\n---Name/g' > file.csv
  • カンマを二重引用符で囲みます。awk
  • 削除するcolumn
  • 次に、キーワードを使用してgrepを展開します。
  • -B3一致するキーワードの前に3行を印刷します。
  • sed期待される出力として、「名前」の前に新しい行を追加することです。

おすすめ記事