나는 다음과 같은 데이터를 가지고 있습니다 :
apple pear sugar pizza
pizza chicken pasta turkey
"피자"를 grep하고 싶지만 네 번째 열만 grep하고 싶습니다. 다음을 사용할 수 있다는 것을 알고 있습니다.
awk '$4 == "pizza"'
하지만 "피자"라는 단어가 포함된 food라는 변수가 있습니다. 내가 할 때
food=pizza
awk '$4 == "$food"'
이중 아포스트로피로 변경하면 오류가 발생합니다. 다음 오류가 발생합니다.
awk: line 1: syntax error at or near ==
어떻게 해야 하나요?
답변1
쉘 변수는 awk 프로그램에서 사용하는 작은따옴표 내에서 확장되지 않습니다.
다음 옵션을 사용하여 쉘 변수를 awk에 전달할 수 있습니다 -v
.
food=pizza
awk -v food="$food" '$4 == food'