간단한 쉘스크립트 질문입니다.
하나는 시간별 농도 파일입니다. (*.txt)
111121 1997 1 2 84 63 15 12 11 11 12 26 12 16 12 11 11 11 12 27 12 35 24
111121 1997 1 3 22 16 16 22 17 12 12 12 21 12 19 12 22 12 35 13 11 11 18
111121 1997 1 4 14 12 11 14 13 13 12 14 28 36 66 69 69 69 79 79 89 59 58
111121 1997 1 5 39 35 26 31 38 31 28 23 36 55 64 90 65 33 17 33 20 34 33
111121 1997 1 6 13 33 13 25 23 13 12 41 45 35 48 49 42 44 43 44 56 53 47
.....
다른 하나는 제가 뽑고 싶은 $1 (flag로 보면 될 것 같습니다) 만을 써놓은 파일입니다. (seoul.st)
111121
111123
....
따라서 쉘스크립트를 다음과 같이 작성해 보았습니다.
#!/bin/ksh
for i in *.txt; do
ehco $i
for j in $(cat seoul.st); do
gawk `{if ($1~$j) print $0}` $i >> test.lst
done
done
하지만 어떠한 행도 나오질 않습니다.
무엇이 문제인지 고수님들의 의견 부탁드립니다.
for 문 돌릴 필요 없는데요.. 단순히 각 행의 첫 번째 필드만 뽑을 거면...
문제를 잘못
문제를 잘못 해석하신 것 같습니다.
이렇게 하시면 됩니다.
.
.
.
.
awk의 코드 부분에 바로 쉘 변수를 쓰면 동작하지 않습니다.
이때는 -v 옵션으로 특정 awk변수로 바인딩 시켜줘야 합니다.
와우! 감사합니다!
-v 옵션이 있다는 것을 이제야 알았습니다. key라는 변수에 j의 내용을 담은 것으로 이해하겠습니다.
좋은 조언 감사드립니다.
어려워...
어려워...
댓글 달기