次の内容と次のファイルがあります。file.txt
TIMESTAMP 200 J8899
INSTANCES 19 x86_64 False i-xxx1a1a t2.medium True subnet-93b224fb hvm vpc-7b801
STATE 16 running
TIMESTAMP 300 J2099
INSTANCES 18 x86_64 False i-xxx1a1b t2.medium True subnet-93b224fb hvm vpc-7b801
STATE 16 running
それでは、次の出力を印刷したいと思います。
i-xxx1a1a : running
i-xxx1a1b : running
TIMESTAMP, INSTANCES, STATE
次に始まる行に注意してください。
私はこれを試しましたが、成功しませんでした。
grep -Ew "インスタンス|ステータス" file.txt awk '{Print $0}'
ベストアンサー1
awkを使用できます。
awk '/INSTANCES/{ thing = $5; } /STATE/ { print thing,":",$NF; }' file.txt
これは、対応するSTATEが常にINSTANCEの後に現れると仮定します。また、インスタンスに状態がない場合は、インスタンス全体をスキップします。