awk/Grep을 사용하여 지정된 열에서 변수를 검색하려면 어떻게 해야 합니까?

awk/Grep을 사용하여 지정된 열에서 변수를 검색하려면 어떻게 해야 합니까?

나는 다음과 같은 데이터를 가지고 있습니다 :

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'

관련 정보