awk 숫자 지정
글쓴이: csb444 / 작성시간: 수, 2012/01/11 - 9:56오후
안녕하세요, awk의 연산범위 지정에 대해서 질문을 올립니다.
다룰 textfile은 다음과 같이 생겼습니다.
########################
atomic position
1.0
12 0 0
0 12 0
0 0 12
C
6
Direct
0 0 0
0.2 0.2 0
0.4 0.3 0
0.6 0.6 0
0.3 0.2 0
...
#########################
이중에서 awk의 명령어를 써서, 'Direct'문자열이 나온 이후의 줄에서, 0.5 이하의 값들을 갖는 것들에 대해 연산을 하고 싶은데요.
awk'{ if($1~/Direct/){DATALINE=NR}
if(NR>DATALINE){
if(($1<0.5)&&($2<0.5)){print $0}
}
}'
위와 같이, Direct라는 줄 수를 DATALINE이라는 변수에 넣고,
if문을 두번 구성했는데요, 엉뚱하게 Direct이전의 숫자들까지 모두 연산이 되어서 고민입니다.
잘하시는 분들에게는 쉬운 문제시겠지만 본인이 프로그래밍에 너무 무지하여 이렇게 질문을 하게되었습니다.
답변에 미리 감사의 말씀을 올립니다.
Forums:
AWK에서는 아직 초기화가 되지 않은 변수가 사용되면
AWK에서는 아직 초기화가 되지 않은 변수가 사용되면 수치 컨텍스트에서 0으로 처리됩니다. NR은 항상 0보다 크니 모두 출력이 되겠지요.
음.
awk '{ if($1~/Direct/){a=1}
if((a==1)&&($1<0.5)&&($2<0.5)){print $0}
}' awk.test
댓글 달기