SHELL에서 AWK로 변수 전달

SHELL에서 AWK로 변수 전달

내 시스템의 각 zpool 공간을 확인하기 위해 Solaris 11에 한 줄을 작성하고 싶습니다. 출력은 다음과 같습니다 ...

myzone1 rpool 83%
myzone2 rpool 49%

내가 읽은 모든 게시물에는 -v 스위치를 사용하여 쉘 변수를 awk에 전달한다고 나와 있습니다.

시도할 때마다 오류가 발생합니다.

이 코드는 작동합니다. 나는 풀과 사용된 비율을 얻습니다.

for i in `zoneadm list -icv|grep running|awk '{print $2}'`; do
    zlogin $i zpool list -H|awk '{print $1" "$5}';
done

이 보고서 출력에 지역 이름을 추가하고 싶습니다. 이 코드는 나에게 적합하지 않습니다!

for i in `zoneadm list -icv|grep running|awk '{print $2}'`; do
    zlogin $i zpool list -H|awk -v i="$i" '{print i" "$1" "$5}';
done

내가 어디에서 잘못되고 있는지 알아낼 수 있도록 도와주실 수 있나요?

답변1

이 의견에 감사드립니다:

관련된:Solaris 11의 POSIX awk마크 플롯닉

코드를 다음과 같이 다시 작성했습니다.

for i in `zoneadm list -icv|grep running|awk '{print $2}'`; do zlogin $i zpool list -H|/usr/bin/nawk -v i="$i" '{print i" "$1" "$5}';done

이것은 내가 원하는 방식으로 보고합니다.

관련 정보