다음 내용과 다음과 같은 파일이 있습니다.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 뒤에 나타난다고 가정합니다. 또한 인스턴스에 상태가 누락된 경우 전체 인스턴스를 건너뜁니다.