파일 n번째 줄의 두 번째 필드를 나눕니다.

파일 n번째 줄의 두 번째 필드를 나눕니다.

다음과 같은 파일이 있습니다.

available_space:1232334343
capacity:123456432
total_space:1232323232

용량/total_space를 계산하고 싶어서 123456432/1232323232를 계산해야 합니다.

다음과 같은 것을 사용해야 한다고 상상할 수 있습니다.

cat my_file | awk -F:'FNR==2 {print$2}' 

하지만 나눗셈 자체를 작성할 수 없으며 구문이 확실하지 않습니다. 그럼 어떻게 해야 할까요?

답변1

원래 접근 방식에 따르면 키 행은 두 번째와 세 번째 행뿐입니다.

awk -F':' 'NR==2{ c=$2 }NR==3{ print c/$2 }' my_file
0.100182

답변2

첫 번째 필드가 인 경우 capacity두 번째 필드의 값을 변수에 저장합니다. 그런 다음 첫 번째 필드가 다음과 같을 때 total_space변수 값을 두 번째 필드의 값으로 나눕니다 .

awk -F: '$1 == "capacity" {c = $2} $1 == "total_space" && c != 0 {print c/$2}' my_file
0.100182

관련 정보