쉘스크립트에서 awk 사용시 문의드립니다.

idrukawa의 이미지

안녕하세요.

다음과 같이 쉘에서 사용하면 정상적으로 출력이 됩니다.

] awk $1/50/'{print $2}' ID_IP.txt  
11.11.11.11
22.22.22.22
33.33.33.33

그런데 이출력 결과를 쉘 스크립트상에서 변수에 넣으려고 하는데요.

TARGET_ID=$1
 
IP_LIST=(`awk '$1/'$TARGET_ID'/{print $2}' ID_IP.txt`)

다음과 같은 실행 오류가 발생합니다.

] time test.sh 50
awk: $1/50/{print $2}
awk:       ^ syntax error

어떻게 수정해야 동작할까요?

idrukawa의 이미지

이렇게 고쳐보면

TARGET_ID=$1
 
IP_LIST=(`awk '$1/'$TARGET_ID'/'\''{print $2}'\''' ID_IP.txt`)

다음과 같은 에러가 발생하네요ㅠ

] time test.sh 50
awk: $1/50/'{print $2}'
awk:       ^ invalid char ''' in expression