
iostat 데이터를 다시 포맷하려고 합니다.
현재 출력:
TimeA
Column1 Column2 Column3
disk1 10GB small
disk2 20GB medium
disk3 30GB large
TimeB
Column1 Column2 Column3
disk1 10GB small
disk2 20GB medium
disk3 30GB large
나는 다음을 원합니다 :
TimeA Column1 Column2 Column3
disk1 10GB small
disk2 20GB medium
disk3 30GB large
TimeB Column1 Column2 Column3
disk1 10GB small
disk2 20GB medium
disk3 30GB large
답변1
awk '
NF == 1 { time_value = $1 }
NF == 0 { if (time_value == "") print }
NF == 3 { printf("%-7s", time_value); time_value = ""; print }
'
- 행에 값이 하나만 있으면 시간 값입니다. 구하다.
- 타임라인과 데이터 라인 사이에 나타나는 빈 라인을 인쇄합니다. 데이터 줄 뒤에 빈 줄을 인쇄하지 마십시오.
- 세 개의 값이 있는 행을 처음 볼 때 처음 부분에 저장된 시간 값을 인쇄합니다. 그런 다음 저장된 시간 값을 삭제합니다. 후속 데이터 라인(다음 타임 라인까지)은 처음에 공백과 함께 인쇄됩니다.