'레코드와 필드'에 해당되는 글 1건

  1. 2013.04.21 awk -f 옵션, 레코드와 필드


awk -f 옵션

awk -f [awk 명령파일] [awk 명령을 적용할 텍스트 파일]


awk 액션과 명령이 파일에 작성되어 있다면 -f 옵션을 사용한다. 

awk 명령을 특정한 파일에 저장해두고, 이 파일에 입력된 명령을 사용하여 다른 파일을 처리하고자 할 때 사용하는 것이 -f 옵션이다.





레코드와 필드

레코드

awk 는 입력 데이터를 볼 수 없다. 하지만, 포맷 또는 구조는 볼 수 있다. 기본적으로 레코드라고 불리는 각 라인은 newline으로 분리된다.


레코드 분리자

디폴트로 출력과 입력 레코드 분리자(라인 분리자)는 빌트인 awk 변수 ORS와 RS에 저장되는 캐리지 리턴이다.

ORS와 RS 값은 변경할 수 있지만 변경하지 않는 게 좋다.


$0 변수

모든 레코드는 awk에서 $0으로 참조된다. ($0는 수정될 수 있다. $0가 치환과 할당에 의해 수정되었을 때 NF의 값이고 필드의 번호이다.)

변수 $0는 현재의 모든 레코드를 그대로 저장한다. 그리고 이 내용을 화면에 출력한다.

awk는 디폴트로 print 액션만 사용해도 모든 레코드를 출력해준다.

awk '{print}' awkfile


NR 변수

각 레코드들의 번호는 awk의 빌트인 변수 NR에 저장된다. 레코드가 저장된 다음 NR의 값은 하나씩 증가하게 된다.

awk '{print NR, $0}' awkfile



필드 (Field)

각 레코드는 디폴트로 공백이나 탭으로 분리된 필드라는 워드로 구성된다. 각 워드들은 하나의 필드라고 부른다.

awk는 빌트인 변수인 NF에 필드의 수를 유지한다. (Number Field)

NF의 값은 일반적으로 라인당 100개의 필드를 가질 수 있다.



Posted by scii
: