쉘 스크립트로 파일을 읽어서 조작하고 싶습니다..
글쓴이: chp320 / 작성시간: 화, 2012/02/21 - 2:43오전
안녕하세요,
현재 AIX Version 5, UNIX를 사용중에 있습니다.
a.csv 라는 파일에
1 1 aaa
2 2 bbb
3 3 ccc
4 4 ddd
5 5 eee
라는 5줄의 데이터가 있습니다.
첫 열과 두번째 열을 비교해서 같은 값이면 세번째 열과 TRUE를 찍고 그렇지 않으면 FALSE를 찍어서
result.txt라는 파일로 저장하고자 합니다.
아래와 같이 구현하였지만 첫 줄인 aaa만 제외된 나머지 데이터만 출력이 됩니다..
while read line; do
awk '{if($1 == $2) print $3" TRUE"; else print $3" FALSE"}' >> result.txt
done < a.csv
결과>
bbb TRUE
ccc TRUE
ddd TRUE
eee TRUE
이유가 무엇일까요 ㅠㅠ
부디... 조언 부탁드립니다 ㅠㅠ
미리 감사드립니다 :)
Forums:
awk 가 실행된 다음에야 인풋을 기다리기
awk 가 실행된 다음에야 인풋을 기다리기 때문입니다.
즉 첫번째 iteration 에서 실행된 awk 은 두번째 line 을 먹습니다.
아마 이렇게 하면 될겁니다.
while read line
do
echo $line | awk '...'
done < a.csv
그런데 awk로 하는게 하고자 하는 일의 전부라면
그냥
$ awk '...' < a.csv
하면 라인별로 처리합니다. 즉 while loop 을 굳이 쓸 필요가 없습니다.
댓글 달기