*.awk
텍스트파일을 자릿수대로 파싱할때 간단하게 쓰임.
간단한 셈도 가능 ( man 참조 )
ls -alt | awk '{print $1 $9}'
빈칸을 구분으로 하여 가장 앞 부분의 필드를 출력
FS 필드 구분자 - Fields Seperator
RS 레코드 구분자 - Records Seperator
NF 현재 레코드의 필드수(Number of Fields)
NR 현재 파일에서 레코드 넘버(Number of Records)
FNR 입력파일이 여러개인 경우에 현재 파일에서의 NF를 표시한다.
OFS 출력시의 FS(Output Fields Seperator). 이 값을 변경하게 되면, 출력시의 FS 가 바뀌게 된다.
ORS 출력시의 RS(Output Records Seperator). 이 값을 변경하게 되면, 출력시의 RS 가 바뀌게 된다
파일의 이름만 정렬해서 출력하기
ls -al | awk '{print $NF}' | sort
wc -l 을 이용해서 워드 카운트도 가능!!
-- RS FS 사용 예제
# cat cards.dat
홍길동
움막짐넷(주)
조선시대 우리집 웃흥웃흥
051-123-4567
임꺽정
하드머리
강진시 오행오행
02-5678-9999
# cat record.awk
#!/bin/awk
BEGIN {
RS = "\n\n";
FS = "\n";
}
{
print $1, $NF;
}
$NF 마지막 필드 값 출력
--실행
# awk -f record.awk
grep "Program Start :" * | awk '{print $NF}' | sort | more