IS lab. 김건영 http://hagazzusa.github.io/ Awk, Posting list IS lab. 김건영 http://hagazzusa.github.io/

Slides:



Advertisements
Similar presentations
Datamining Lab 이아람.  How to count the matches The cat ate the bird.  Token : 5/Type : 4.
Advertisements

Copyright © 2015 Pearson Education, Inc. 6 장 : 프로그래밍 언어.
03 변수와 자료형 세종대학교 최옥경 교수 참고 : 한빛미디어 뇌를 자극하는 C, INFINITY Perfect C.
Tcl/Tk 민 인학 한국 Tcl/Tk 커뮤니티.
멘토링 2 주차 장 프로그래밍을 위한 자바의 자료형  값이 변하지 않는 상수  메모리 기억공간인 변수.
YES C 제 1 장 C 언어의 개요 1/34 제 1 장 C 언어의 개요 문봉근. YES C 제 1 장 C 언어의 개요 2/34 제 1 장 C 언어의 개요 1.1 프로그램과 C 언어의 특징 1.2 C 언어의 프로그램 구성 1.3 비주얼 C++ 통합 환경 들어가기.
패널자료 분석
2013학년도 전라북도고등학교신입생 입학전형 기본계획
2015학년도 1학기 버디 프로그램 오리엔테이션 (목) 16:00.
열왕기하 1장을 읽고 묵상으로 예배를 준비합시다..
쉘 스크립트와 cron coearth, george.
제 4 장 변수, 영역, 수명 변수 바인딩 영역 기억장소 할당과 수명 변수와 그 환경 변수 초기화 상수와 변수.
C++ Espresso 제3장 배열과 포인터.
C++ Espresso 제3장 배열과 포인터.
제 1장 C 언어의 소개.
2014 ITA 8월 강의 C Programming -1주차- C언어 기초 정대진 ( )
Java Presentation 중간 시험2 풀이
제 8 장  파서 생성기 YACC 사용하기.
Chapter 11 The C Shell.
제3장 추가 실습 3장 관련 C 언어 프로그래밍 실습.
쉽게 풀어쓴 C언어 Express 제18장 입출력과 라이브러리 함수 C Express.
 13장. 배시쉘 프로그래밍.
쉽게 풀어쓴 C언어 Express 제4장 변수와 자료형 C Express.
JavaScript.
Ch2-2. VHDL Basic VHDL lexical element VHDL description
파일 및 디렉토리(1) 여러 함수들 chdir(“category”) || die “cannot cd to temp”;
Perl File Handling FileHandle : Name for I/O connection
정보검색 환경세팅 및 쉘스크립트 맛보기 IS lab. 김건영.
CHAP 11: 해싱 순천향대학교 하상호.
제 2 장 변수와 상수.
제 3 장 상수와 변수
-제어문, 함수, 클래스- IS lab. 김건영 Python -제어문, 함수, 클래스- IS lab. 김건영
안전한 생활 교과용도서의 이해 2015 개정 교육과정 초등학교 1~2학년군 (화)
CHAP 11: 해싱 순천향대학교 하상호.
부록 A Matlab 활용.
5장 이름, 바인딩, 영역(2) 순천향대학교 컴퓨터공학과 하상호.
2장 표준 입출력 표준 입출력 함수의 종류 형식화된 입출력 문자 입출력 문자열 입출력.
[ 포털 사이트 연관검색어/자동완성 등록 서비스 ]
IS lab. 김건영 Sed, 정규표현식 IS lab. 김건영
목차 INDEX 1. 회원가입 및 로그인 2. 업체정보 3. 제조검사 신청 4. 인보이스 5. 검사진행현황(현장검사 신청)
컴퓨터의 기초 제 2강 - 변수와 자료형 , 연산자 2006년 3월 27일.
나이스 진로정보 초‧중‧고 연계 서비스 안내 (수) 한국교육학술정보원 교육행정부 김지광 선임연구원
기초 프로그래밍 Yang-Sae Moon Department of Computer Science
인터넷응용프로그래밍 JavaScript(array).
2. 상호배제와 동기화 01 program versionone; // 첫 번째 버전
[CPA340] Algorithms and Practice Youn-Hee Han
컴퓨터공학실습(I) 3주 인공지능연구실.
6장 콘 셸 뇌를 자극하는 Solaris Bible.
Chapter 4 변수 및 바인딩.
포인터.
작성일 참고서적 – Programing Game AI by Example
6장 반복제어문 for 문 while 문 do while 문 기타 제어문.
Signature, Strong Typing
Signature, Strong Typing
세션 (Session) Yang-Sae Moon Department of Computer Science
Signature, Strong Typing
Chapter 17 BOOTP and DHCP.
전류는 자계에서 힘을 받는다 기계공학교육 박지훈 황인석 한만혁 이덕균.
이번 시간에는... 지난 시간까지 2회차에 걸쳐 WML의 택스트 포맷, 이미지 처리, 페이지 이동, 태스크 수행과 이벤트 처리 및 WML 사용자 Input 처리 태그 등, WML 개발에 대해서 알아보았습니다. 이번 시간에는 2회차에 걸쳐, WML 스크립트 개발에 대해서.
실습과제 1번 생성된 파일 basic.txt를 프로젝트 폴더에서 메모장으로 열고 내용을 확인
테이블 데이터 처리용 command line tool들
3주차: Control Flow and Others
Lecture 05 문자열, 배열, 디버깅 Kwang-Man Ko
DataScience Lab. 박사과정 김희찬 (화)
C.
책을 읽읍시다  탈향 진지하게 설명해드림 1303 김소희 1309박지호 1315이지수.
2016년 제1차 운영위원회 평택시건강가정 ∙다문화가족지원센터
PHP 기초문법 PHP를 공부하는데 있어 가장 기초가 되는 PHP기초문법에 대해서 배워 봅니다.
프로그래밍 기법 최적화 프로그래밍.
⊙ 입출력 처리란? data를 입력장치로부터 program 내부로 읽어 들이거나
Presentation transcript:

IS lab. 김건영 http://hagazzusa.github.io/ Awk, Posting list IS lab. 김건영 http://hagazzusa.github.io/

Sed? Awk? 공통적으로 데이터 가공을 위한 텍스트 처리 유틸 프로그램 리눅스 쉘 환경에서 지원함 표준입력 표준출력 (stdout, stdin) 사용으로 원본파일을 건들이 지 않음 간단하게 말하자면 Sed: 비대화형 텍스트 편집기 Awk: 필드 단위의 패턴 처리기 주로 Sed를 이용해 raw data를 가공하고 awk를 이용해 원하는 형태로 만듬

Awk가 처리할 수 있는 데이터의 형식 필드 구분자 : □ 레코드 구분자 : \n $0은 레코드 한줄

Awk 실습 자료 Mkdir awk Cd awk Cp /home/gykim/awk/awk00[띄어쓰기]. 필드 구분자 : \t, 레코드 구분자: \n Awk의 기본 필드 구분자는 스페이스

Awk 기본 사용법 Awk [-f awk스크립트파일] [-F 필드구분자] [awk스크립 트] [처리할 파일의 주소] ex) awk ‘/indian/{print}’ awk00 = awk ‘/indian/’ awk00 : indian이 있는 레코드만 출력

Awk script – 이건 안쳐도 됨 Sed 와 비슷하게 /pattern/{actions}으로 구성 그러나 편집기능은 적고 데이터를 활용하는데 더 많은 기능이 있다. 단어의 빈도 수를 세는 스크립트

$0? $1?, Awk 내부변수 Awk에는 필드단위 데이터 처리를 위한 내부 변수들이 존재한다. 변수명 변수 내용 FS Fields Seperator (필드 구분자) RS Recodes Seperator (레코드 구분자) NF Number of Fields (현재 레코드의 필드 수) NR Number of Records (현재 파일에서 레코드 넘버) FNR 입력파일이 여러 개인 경우에 현재파일에서의 NF를 표시. OFS 출력시의 FS(Ouput Fidels Seperator). ORS 출력시의 RF(Ouput Records Seperator). $0 한 줄의 레코드 전체 $n 레코드(한 줄)의 n번째 필드값

Awk 내부 변수와 model SED와 마찬가지로 줄 단위 처리임을 알 수 있다.

필드 구분자 교체하기 기본 필드 구분자는 스페이스이므로 탭으로 교체해주면 name에 해당하는 필드들이 제대로 나온다. 혹은 –F 옵션으로 “\t” 를 넘겨주면 된다.

Model : BEGIN, ROUTINE, END 보통 BEGIN에서는 환경설정을, 루틴에서는 줄단위로 처리하면서 할 행동을 END에서는 앞서 한 액션들을 종합하여 정리한다.

Awk – print Awk ‘{print “hellow world!”}’ 줄 단위 처리인 만큼 줄 개수 만큼 출력 줄 단위 처리인 만큼 줄 개수 만큼 출력 BEGIN은 ROUTINE시작 전 한번 이므로 한 번 출력 Routine에서 패턴을 앞에 붙이면 Pizza가 들어가는 줄 개수만큼만 출력

Awk - printf 형식지정자 종류들 변환 문자 정의 c 문자 lx long 16진수 s 문자열 o 8진수 d 10진수 ld long 10진수 e 지정한 표기에서 float u unsignwd 10진수 f float(실수) lu long unsignwd 10진수 g e 또는 f를 사용한 실수로 적어도 공백을 가진다 x 16진수

Awk - printf {printf “string”, arguments} Indian이 들어가는 레코드의 id와 이름을 포맷에 맞추어 출력하는 예제 다른 언어와 마찬가지로 공백지정가능

Awk – variable 필드의 개수를 세는 예제 변수의 배정(assignment)을 하지 않고 사용할 경우 NULL으로 간주함 NULL += 1 => 1

Awk – array Awk의 array는 hashmap(dictionary)의 형태 ex) id[“김건영”] = 13422 index의 타입은 상관없음 Name을 index로 가지는 id 배열을 만들어 END에서 name이 Taj Tandoori인 가게의 id를 출력하는 예제

Awk - 조건문 If (condition) action else if (condition) action else action Food의 종류에 따른 if-else 예제 Pipe가능

Awk – 반복문, while While(condition) action ROUTINE에서 줄 마다 name배열에 이름을 저장한 후 i++, END에서 while문을 이용하여 j가 레코드 숫자보다 적을 동안 name 원소들을 출력해줌

Awk – 반복문, for For(expr; condition; expr) action 앞선 while문 예제와 같은 문제 k=NULL 혹은 k만 써야 제대로 작동함 0 넣으면 name이 나오지 않음

Awk – 반복문, foreach for (variable in array) variable에는 array의 index가 순차적으로 할당된다. 들어온 순서를 보장하지 않음 Id를 index로 가지는 name배열을 순회하는 예제

Awk- 내장함수 Length(x) : x의 철자 수 반환 이외에도 지원하는 많은 내장 함수들이 존재 자세한건 https://ko.wikibooks.org/wiki/GNU_Awk_%EC%82 %AC%EC%9A%A9%EC%9E%90_%EA%B0%80%EC% 9D%B4%EB%93%9C/%ED%95%A8%EC%88%98

Awk – 사용자 정의 함수 Function name(arg1, arg2 …){ body return value; } 함수정의예시

Posting list 단어가 인덱스가 되고 값이 문서의 번호가 되는 리스트

Posting list script

documents Cd Cp -rf /home/gykim/posting_list[띄어쓰기].

스크립트 설명 BEGIN 부분 : FS와 RS를 명시하고 파일이름 저장을 위 한 배열 files의 인덱스를 담당하는 filecnt를 0으로 초기 화 ROUTINE 부분 : files에 파일이름을 저장하고 origin vocab에는 “파일이름#단어”를 인덱스로 하여 값은 단어 가 등장한 횟수가 됨 END 부분: var는 “파일이름#단어"가 되고 split 함수를 이용하여 temp[1] = 파일이름, temp[2] = 단어로 만듬 이후 posting_list, term_freq의 인덱스를 단어로 하여 완 성함

제출안내 포스팅 리스트 작성 스크립트와 해당 결과를 스크린샷으 로 찍어서 gyk@kangwon.ac.kr 로 보내주세요. 구글 이메일 아닙니다. 제목은 [학번]posting list로 해주시면 됩니다. 출석은 제출로 대신합니다.