쉘프로그래밍 egrep and질문

sk7755의 이미지

egrep -i 홍길동 data | egrep -i 서울시 | awk -f display.awk
이 소스코드는 data에서 서울시와 홍길동이 모두 들어있는 행을 찾고 다음으로 넘겨주는 건데요.

egrep -i 홍길동 data | egrep -i 서울시 | awk -f display.awk
이거는 오류가안나는데

arg="egrep -i 서울시 data | egrep -i 홍길동"
$arg | awk -f display.awk

egrep: |: No such file or directory
egrep: egrep: No such file or directory
egrep: 서울시: No such file or directory
이거는 이렇게 오류가 납니다.. 도와주세요.

qiiiiiiiip의 이미지

eval "$arg | awk -f display.awk"

sk7755의 이미지

이렇게 바꾸니까 바로 되네요 eval가 뭔지 찾아봐야겠어요 ㅠㅜ

chanik의 이미지

참고로, 아래와 같이 $arg만 eval 하는 식으로 해도 됩니다.

$ eval "$arg" | awk -f display.awk

아래와 같이 Process Substitution을 이용해도 되고요.

$ awk -f display.awk <($arg)