Description
코드의 거장들이 만든, 텍스트 처리의 숨은 고수 AWK
1977년부터 지금까지 변하지 않는 데이터 분석 도구
쉽다, 생산적이다, 언제나 사용할 수 있다!
AWK 창시자가 직접 쓴 가이드
대규모 로그 파일 분석이나 CSV 데이터를 처리할 때마다 무거운 프로그램과 복잡한 스크립트에 의존하는가? 텍스트 데이터를 효율적으로 처리하고 싶지만, 배우기 어려운 도구들로 생산성을 떨어뜨리고 있는가? 이러한 문제로 인해 중요한 업무에 집중하지 못하고 시간을 낭비하고 있을지도 모른다.
1970년대 여러분과 비슷한 고민을 하던 세 명의 천재 개발자가 한자리에 모였다. 이들은 유닉스 시스템의 잠재력을 최대한 발휘할 방법을 고민하다가 당시로선 혁신적인 아이디어를 떠올렸다. 그건 바로 텍스트 데이터를 효율적으로 처리하는 새로운 도구를 만드는 것이었다. 그리하여 탄생한 것이 바로 AWK였다.
AWK는 텍스트 기반 데이터 처리를 혁신적으로 간소화한다. AWK를 사용하면 복잡한 스크립트를 작성하지 않고도 데이터 전처리와 로그 분석 같은 일상적인 작업을 빠르게 처리할 수 있다. 특히, 유닉스 파이프라인과의 탁월한 호환성 덕분에 여러 작업을 한 번에 효율적으로 수행하여 생산성을 극대화할 수 있다.
지금 바로 AWK에 10분만 투자해 보자. 초보자도 10분이면 텍스트 데이터 처리의 새로운 가능성을 맛볼 수 있다.

저자

앨프리드에이호,브라이언커니핸,피터와인버거

저자:앨프리드에이호
앨프리드에이호(AlfredV.Aho)는컬럼비아대학교컴퓨터과학과의로런스거스만명예교수다.그는알고리즘,자료구조,프로그래밍언어,컴파일러,그리고컴퓨터과학기초에대한연구로널리알려져있으며,ACMA.M.튜링상과IEEE존폰노이만메달을수상했다.

저자:브라이언커니핸
브라이언커니핸(BrianW.Kernighan)은벨연구소컴퓨터과학연구센터의일원이었으며,현재프린스턴대학교컴퓨터과학과교수다.데니스리치와함께컴퓨터과학분야의고전격인《TheCProgrammingLanguage》를썼다.

저자:피터와인버거
피터와인버거(PeterJ.Weinberger)는르네상스테크놀로지스의CTO였으며벨연구소에서컴퓨터과학연구팀을이끌었다.현재구글에서근무중이며,미국과학진흥협회(AAAS)의석학회원(Fellow)으로선정된바있다.

역자:인사이트편집부

목차


1장Awk튜토리얼

1.1시작하기
Awk프로그램의구조
Awk프로그램의실행방법
에러
1.2단순출력
전체라인출력
특정필드출력
NF,필드수
계산및출력
라인번호출력
텍스트를넣어출력
1.3출력포매팅
필드라인업
결과정렬
1.4선택
비교결과로선택
계산결과로선택
텍스트내용으로선택
패턴조합
데이터유효성검사
BEGIN과END
1.5계산
개수세기
합계와평균계산
텍스트처리
문자열연결
마지막입력라인출력
내장함수
라인,단어,문자개수세기
1.6제어문
if-else문
while문
for문
피즈버즈
1.7배열
1.8한라인짜리쓸만한프로그램
1.9이제무엇을할까?

2장Awk실제사용법

2.1개인용계산기
체질량지수
단위환산
셸스크립트복습
2.2선택
2.3변환
캐리지리턴
멀티컬럼
2.4요약
2.5개인용데이터베이스
주가
2.6개인용라이브러리
날짜포매터
2.7정리하기

3장탐색적데이터분석

3.1타이타닉호침몰
요약데이터:titanic.tsv
탑승객데이터:passengers.csv
추가확인
3.2맥주평점
3.3데이터그루핑
3.4유니코드데이터
3.5기본그래프및차트
3.6정리하기

4장데이터처리

4.1데이터변환과축소
컬럼합계
백분율및분위수계산
쉼표가있는숫자
고정필드입력
프로그램상호참조검사
4.2데이터유효성검사
균형잡힌구분자
패스워드파일검사
데이터유효성검사프로그램생성
4.3결합과분리
4.4멀티라인레코드
빈라인으로구분된레코드
멀티라인레코드처리
헤더/트레일러추가
이름-값데이터
4.5정리하기

5장리포트와데이터베이스

5.1리포트생성하기
단순리포트
5.2패키징된쿼리와리포트
폼레터
5.3관계형데이터베이스시스템
자연조인
relfile
q,Awk와유사한쿼리언어
qawk,q를Awk로옮기는번역기
5.4정리하기

6장단어처리

6.1무작위텍스트생성
무작위선택
클리셰생성기
무작위문장
6.2대화형텍스트조작
스킬테스트:산수시험
스킬테스트:퀴즈
6.3텍스트처리
단어개수세기
텍스트포매팅
문서파일의상호참조관리
KWIC인덱스
6.4인덱스만들기
6.5정리하기

7장작은언어

7.1어셈블러와인터프리터
7.2그래프드로잉언어
7.3정렬생성기
7.4역폴란드계산기
7.5또다른접근방식
7.6산술표현식용재귀하향파서
7.7Awk부분집합을위한재귀하향파서
7.8정리하기

8장알고리즘실험

8.1정렬
삽입정렬
퀵정렬
힙정렬
8.2프로파일링
8.3위상정렬
너비우선위상정렬
깊이우선탐색
깊이우선위상정렬
8.4Make:파일업데이트프로그램
8.5정리하기

9장에필로그

9.1언어로서의Awk
9.2성능
9.3결론

부록AAwk사용자매뉴얼

A.1패턴
A.1.1BEGIN과END
A.1.2표현식패턴
A.1.3정규표현식패턴
A.1.4정규표현식상세
A.1.5범위패턴
A.2액션
A.2.1표현식
A.2.2타입변환
A.2.3제어문
A.2.4빈문장
A.2.5배열
A.3사용자정의함수
A.4출력
A.4.1print문
A.4.2출력구분자
A.4.3printf문
A.4.4출력을파일로
A.4.5출력을파이프로
A.4.6파일과파이프닫기
A.5입력
A.5.1입력구분자
A.5.2CSV입력
A.5.3멀티라인레코드
A.5.4getline함수
A.5.5명령줄인수와변수할당
A.6다른프로그램과의연동
A.6.1system함수
A.6.2Awk프로그램으로셸명령어제작
A.7정리하기