임의의 표현식으로 정의된 awk 필드를 참조하는 방법은 무엇입니까?

임의의 표현식으로 정의된 awk 필드를 참조하는 방법은 무엇입니까?

${name}쉘 스크립트에는 변수 이름을 명시적으로 지정하고 이를 주변 텍스트와 구분하는 구조가 있습니다 .

에서는 awk이를 사용하여 다섯 번째 필드를 참조하거나 $5변수 N이 가리키는 N번째 필드를 참조하는 데 사용할 수 있습니다 $N.

N+1번째 필드를 참조하려면 어떻게 해야 합니까? 을 사용하면 $N+1N번째 필드의 내용에 1을 더한 값을 얻게 되는데 이는 내가 원하는 것이 아닙니다.

temp = N+1다른 변수를 설정 한 후 참조 할 수도 있지만 $temp"N번째 더하기 1" 필드를 한 번에 지정할 수 있는 방법은 없나요?

아니면 N의 N번째 필드를 반환하는 함수를 참조할 수 있나요?

답변1

숫자를 괄호로 묶으세요.

$ echo 1 3 5 7 | awk '{print $(1+3)}'
7

일부 함수를 사용하여 필드 번호를 계산하려면 대괄호가 전혀 필요하지 않습니다.

$ echo 1 3 5 7 | awk '{print $sqrt(16)}'
7

(물론 아프지 않으니 그것도 $(sqrt(16))효과가 있다)

관련 정보