[질문] AWK 사용에 관한 질문

익명 사용자의 이미지

안녕하세요, 초보 질문드립니다~ *^^*

AWK 사용시, AWK 외부에 있는 변수를 읽어올 수 있나요?

(예)

---------------------------
herName="mary"

awk '/ /' ./namelist

---------------------------

여기 awk 의 / / 사이에 herName 의 값을 읽어서 넣고 싶습니다.
어떻게 하면 됩니까?

익명 사용자의 이미지

안원석 wrote..
안녕하세요, 초보 질문드립니다~ *^^*

AWK 사용시, AWK 외부에 있는 변수를 읽어올 수 있나요?

(예)

---------------------------
herName="mary"

awk '/ /' ./namelist

---------------------------

여기 awk 의 / / 사이에 herName 의 값을 읽어서 넣고 싶습니다.
어떻게 하면 됩니까?

작은 따옴표 대신에 큰 따옴표를 사용하시면 됩니다.

단 주의 할 것이

$ ls -al | awk '{printf "\%s\n", $3}'
이런 문장이 있다면

$ ls -al | awk "{printf \"%s\\n\", \$3}'
이런식으로 쿼우팅에 신경을 써주셔야 합니다.

아래는 허접한 예제입니다.
$ cat aaa
sed
sed
awk 1
sed
awk 2
awk 3
sed
$ WORD="awk"
$ awk "BEGIN {
> cnt = 0;
> printf (\"\\n찾고자 하는 문장 \\\"%s\\\"\\n\", \"${WORD}\");
> print;
> }
>
> /${WORD}/ {
> ++cnt;
> printf (\"%d번째 %d번째 줄 %s \\n\", cnt, NR, \$0);
> }
>
> END {
> printf (\"\\n총 발견된 줄의 갯수 %d줄\\n\\n\", cnt);
> }" aaa

찾고자 하는 문장 "awk"

1번째 3번째 줄 awk 1
2번째 5번째 줄 awk 2
3번째 6번째 줄 awk 3

총 발견된 줄의 갯수 3줄

$

그럼...