AWK FILENAME 현재 파일명 $0 입력 레코드 FS 입력 필드 구분 $n 입력 레코드의 N번째 필드 NF 현재 레코드 필드 갯수 ARGC 커맨드 라인의 인자 갯수 NR 현재 레코드 번호 ARGV 커맨드 라인 인자를 포함하는 배열 OFMT 숫자에 대한 출력 포맷 ENVIRON 환경 변수들을 모아둔 관계형 배열 OFS 출력 필드 구분 FNR NR과 동일 ORS 출력 레코드 구분 RSTART 지정한 매칭 연산을 만족하는 문자열의 맨 앞부분 RS 입력 레코드 구분 RLENGTH 지정한 매칭 연산을 만족하는 문자열의 길이 산술 : =, +=, -=, *=, /=, %= 조건 : ? : 논리 : ||, &&, ! 패턴 : ~, !~ 비교 : <, <=, >, >=, !=,== 증감 : ++, -- 필드참조 : $ 참고서적 : sed & awk, Dale Daugherty, O'reilly
표준 출력을 리다이렉션할 수 있다
커맨드 라인에서는 패턴, 동작 전체를 단일 따옴표로 묶는다
sed가 지원하지 않는 +, ?, |, ( ) 등의 메타문자도 지원한다 또한
^, $를 각 필드의 처음과 끝을 의미하도록 사용할 수도 있다
숫자 기준, 알파벳 기준 모두 사용 가능하다
~ : 일치하는 부분을 나타낸다
!~ : 일치하지 않는 부분을 나타낸다
첫 번째 레코드가 읽혀지기 전에 어떤 동작을 정의하여 사용하고 싶을 때 사용한다
마지막 레코드가 모두 읽혀진 후 어떤 동작을 정의하여 실행하고 싶을 때 사용한다
/good/
{ print $1 }
/good/ { print $1 }
NF > 2
BEGIN { FS = "\n" ; RS = ""}
$1 ~ /good/ { print $3 , $2 }
/good/ { ++x }
END { print x }
{ total += $2 }
END { print "Total of $2: " , total }
length($0) < 20
NF == 4 && /^good/
NF > 0
디폴트 : 공백
디폴트 : %.6g
디폴트 : 빈줄
단지 현재 파일에 적용된다는 점이 다름
디폴트 : newline
디폴트 : newline
펄의 foreach와 같다
입력 문자열의 전반에 걸쳐 정규표현식 r을 문자열 s로 대치한다
문자열 s2에서 정규표현식 r을 s1으로 대치한다
s1에서 s2의 위치를 넘겨준다 만약 없다면 0을 넘겨준다
인자의 길이를 넘겨준다
문자열 s에서 정규표현식 r과 매칭되는 부분의 위치를 넘겨준다
구분자를 기준으로(지정하지 않으면 공백 기준)해서 지정한 문자열을 배열로 만든다 배열[1], 배열[2], .......
gsub과 동일하다
단지 정규표현식과 일치하는 문자열이 여러개라도 처음 문자열만 대치된다
문자열 s에서 m번째 위치에서 끝까지의 문자를 리턴한다
문자열 s에서 m번째 위치에서 n번째까지의 문자를 리턴한다
y/x의 arctangent값을 라디안 단위로 넘겨준다
0과 1사이의 난수를 발생한다
인자를 가지고 난수를 발생한다
인자가 주어지지 않으면 시간을 가지고 난수를 발생한다
지정한 파일을 닫는다
지정한 명령어 파이프를 닫는다
지정한 배열 요소를 지운다
다음 레코드를 읽어 들인다
파일에서 읽어들인다
다음 레코드(라인)을 입력받는다
getline()과 유사하지만 /패턴/동작을 새롭게 시작한다
getline()은 다음 라인을 읽기만 한다
인자를 출력한다
형식에 맞춰 출력한다
printf와 마찬가지로 사용하는데 값을 리턴하기만 하고 출력은 하지 않는다
시스템 내부 명령어를 실행한다
화면에 1이상 100이하의 난수 일곱 개를 출력한다
파일들의 크기를 모두 합하여 총 바이트 수를 표시한다
지정한 파일의 라인이 몇 개인지를 표시한다
지정한 파일의 짝수번째의 라인만을 출력해 준다
'*nix' 카테고리의 다른 글
sed 사용법 (0) | 2010.06.01 |
---|---|
vi 특정문자열 삭제 (0) | 2010.06.01 |
로그파일 가공하기 (0) | 2010.05.17 |
[AIX] 한글 로케일 (0) | 2010.01.20 |
nohup (0) | 2009.12.01 |