테이블 데이터 처리용 command line tool들

Slides:



Advertisements
Similar presentations
신도초 5 학년 4 반 김정수 지도교사 전혜원 선생님.  산출물 주제를 정하다가 문득 낮보다 왜 밤이 더 소리가 잘 들리는지 궁금해서 결정했다. 처음에 는 물질의 종류에 따른 소리의 크기로 하려 그랬 지만 실험이 너무 간단한 것 같아서 재료를 늘리 거나 온도를 높이려고.
Advertisements

1 SQL 정보보호학과 양 계 탁. 2 SQL 개요 SQL 개요 3 Database u 연관된 데이터들의 집합 u 데이터를 쉽게 관리하는 프로그램 종 류종 류 관계형 데이터베이스 객체지향형 데이터베이스 계층형 데이터베이스 네트워크 데이터베이스 데이터를 2 차원적인 테.
LOGO 중소기업체 대상 무료 정보보안컨설팅 제안서. LOGOClick To Edit Title Style 목 차 한국 IT 전문학교 해킹 피해 사례 제안의 개요 및 목적 보안컨설팅 수행 절차 기대효과 조직도 및 연락처.
(HiveMall Work Process)
19.(코드+년도+월)별,(코드)별,전체총액을 한번에
Perfect! 대용량 데이터베이스 튜닝Ⅱ.
소리가 작으면 이어폰 사용 권장!.
김 상 국, 김 기 훈 한남대학교 컴퓨터공학과 데이터베이스 실험실
시작부터 끝까지 진지한 궁서체로 진행하는 완벽한 주입식의 하드코어한 리눅스/장난감 세미나
IT Application Development Dept. Financial Team May 24, 2005
한국어 정보의 전산 처리 강좌 소개 박진호 (서울대 국문과 교수).
실전 데이터모델링 & 데이터베이스 설계와 구축
문서 PARSONS/OJA 문서, 워크시트, 데이터베이스 Page 1 1.
SAP QUERY SAP R/3 4.6C.
질의어와 SQL 기본 SQL 고급 SQL 데이타의 수정 데이타 정의 언어 내장 SQL
관계 대수와 SQL.
오라클 데이터베이스 성능 튜닝.
SQL Server Migration Assistant For Oracle
Python Bottle Web Framework
Database & Internet Computing Laboratory 한 양 대 학 교
Chapter 5 SQL: 확장된 질의, 주장, 트리거, 뷰.
Unix(Linux) shell programming
효과적인 DB암호화 구축을 위한 애슬론 v1.5 제안
4장. 관계 대수와 SQL SQL 관계 데이터 모델에서 지원되는 두 가지 정형적인 언어
Distributed Computing (Apache Hadoop & Hive Review)
다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL
Apache Hive 빅데이터 분산 컴퓨팅 박영택.
SQL 개요 SQL 개요 - SQL은 현재 DBMS 시장에서 관계 DBMS가 압도적인 우위를 차지하는 데 중요한 요인의 하나
DB 구축과 프로그래밍 CASE 도구인 ERwin을 설치하고 셋업하는 방법을 익힌다.
Information Technology
Toad for SQL Server 제품 소개서 – 프로넷소프트㈜.
1 PROJECT TITLE 기획 PAGE NO. 웹 페이지 구성 화 면 번호 화 면 설 명 연 결 화 면 L1 L4 L7
데이터 베이스 란? 데이터 베이스 기능 데이터 베이스 관리 시스템 정보시스템의 구성 관게형 데이터 베이스
엑셀을 이용한 테이블 자료 분석 한국어 정보의 전산 처리
롯데마트 CRM 데이터 분석 교육 2014년 12월 > RE::VISION 전용준 리비젼컨설팅 대표
롯데마트 CRM 데이터 분석 교육 2014년 12월 > RE::VISION 전용준 리비젼컨설팅 대표
문자코드 변환 콘코던서 형태소분석기 한국어 정보의 전산처리
본 문서의 내용은 컬러로 인쇄를 해야 정확한 내용 이해가 가능 합니다.
9. 데이터베이스 9.5 SQL을 사용하는 프로그램 9.6 데이터폼 작성기를 사용하는 프로그램
Linux/UNIX Programming
소프트웨어시스템 실험 Software Systems Lab. 데이터베이스 기초
IS lab. 김건영 Awk, Posting list IS lab. 김건영
Part 04 입출력과 전처리 ©우균, 창병모 이 슬라이드는 부산대학교 우균이 작성하였습니다. 오류나 수정할 사항 있으면 연락 주세요.
정보검색 환경세팅 및 쉘스크립트 맛보기 IS lab. 김건영.
SQL.
TF-IDF Porter stemmer, AP-88데이터셋
강사: 이종인 다우 교육원 전임강사 / 온디멘드 수석 컨설턴트 / FMG 수석 컨설턴트
SQL (structured query language)
DataBase 연결 및 사용방법
소프트웨어시스템실습 3강: R 프로그래밍 및 데이터 조작
제 9장: 파일과 데이터베이스 데이터 구성에서부터 데이터 채굴 까지.
1장. SELECT 문장을 이용하여 원하는 데이터 가져오기
View(뷰) 1 가상 테이블(Virtual Relation)
Database 중고차 매매 DB 비즈니스IT 윤동섭.
11장. GROUP BY와 HAVING 열의 그룹화 2개 이상의 열에 대한 그룹화
한국어 정보의 전산 처리 강좌 소개 박진호 (서울대 국문과 교수).
McGraw-Hill Technology Education
Linux/UNIX Programming
SQL INJECTION MADE BY 김 현중.
06. SQL 명지대학교 ICT 융합대학 김정호.
누구나 즐기는 C언어 콘서트 제2장 기초 사항 IT응용시스템공학과 김형진 교수.
문자코드 변환 콘코던서 형태소분석기 한국어 정보의 전산처리
Command line tools 한국어 정보의 전산 처리
How I Approach Tuning a SQL Statement
1. Cut 편집.
뇌를 자극하는 Windows Server 장. 데이터베이스 서버.
SQL Server Reporting Services Feature
쿼리 활용하기 1 담당교수 : 박흠 실용컴퓨터 데이터베이스 기초 Access 담당교수 박흠.
우리나라에서 10대로 살아가기 엘리트조 오정희 / 송지선 / 손시하 / 박주현 / 김소현.
Linux/UNIX Programming
Presentation transcript:

테이블 데이터 처리용 command line tool들 한국어 정보의 전산 처리 2019. 4. 2.

cut 각 레코드(라인)에서 일정 부분을 잘라내어(추출하여) 출력함. <50students_ext.csv -c 1-9,11-12 : 1째~9째 문자, 11째~12째 문자 추출 한글 한 글자가 3바이트이므로, 세 글자로 된 이름과 국어 점수가 출력됨. ls -l | cut –c 1-10 : 현재 디렉토리에 있는 파일들의 permission 정보가 출력됨 스위치 -d ~: (delimiter) 필드 구분자를 ~로 지정함. default는 탭 스위치 -f : 몇번째 필드를 추출할 것인지를 지정 <50students_ext.csv -d, -f 1,8 : 필드 구분자를 쉼표(,)로 하여, 첫째 필드와 8째 필드 추출 “이름,평균”이 출력됨.

join 피벗 필드를 공유하는 2개의 파일의 각 라인을 통합함. 2개의 입력 파일은 소팅되어 있어야 함. 피벗 필드의 default는 첫째 필드 스위치 -1 필드넘버 : 첫째 파일에서 필드넘버로 지정된 필드를 피벗 필드로 함. (스위치 -2도 마찬가지) 스위치 -a 파일넘버 : (all) 파일넘버(1또는 2)로 지정된 파일에서 비교 불가능한 라인도 출력함. (복수 지정 가능: -a1 -a2) 스위치 -t 문자 : ‘문자’를 필드 구분자로 사용.

awk, gawk 테이블 형식의 데이터를 처리할 수 있는 매우 강력한 도구. BEGIN 블록, 메인 블록, END 블록으로 이루어짐. 메인 블록은 필수적. 나머지 둘은 수의적. 메인 블록에서는, 각 레코드의 각 필드들을 추출하여 처리함. $1, $2, … $n : 첫째 필드, 둘째 필드, … n째 필드. $0 : 해당 레코드 전체 NF : 해당 레코드에서 필드의 수. NR: 레코드넘버 print $3,$2,$1 : 셋째 필드, 둘째 필드, 첫째 필드를 (이 순서대로) 출력 print $0,$2+$3 : 해당 레코드를 통째로 출력하고, 그 뒤에 둘째 필드와 셋째 필드를 더 한 값을 출력함. print 함수 실행시 쉼표 부분에는 OFS가 출력되고 맨 끝에는 ORS가 출력됨. printf 함수의 경우, 필드 구분자, 레코드 구분자가 자동 출력되지 않음. BEGIN 블록에서는 입력 및 출력시의 레코드 구분자, 필드 구분자 등을 지정 할 수 있음. RS 입력 레코드 구분자, FS 입력 필드 구분자 (스위치 “-F 구분자”로도 지정 가능) ORS 출력 레코드 구분자, OFS 출력 필드 구분자 구분자를 따로 지정하지 않으면 default는 (O)RS는 줄바꿈, (O)FS는 공백

awk, gawk 메인 블록 앞에 패턴(정규표현)을 제시하면, 각 레코드 중 이 패턴에 매치 되는 것에 대해서만 메인 블록을 실행함. <50students_ext.csv awk -F, ‘BEGIN{OFS=","}/^김/{print $0}‘ “김”으로 시작되는 라인만 출력 <50students_ext.csv awk -F, ‘BEGIN{OFS=","}$1~/^김/{print $0}‘ 첫째 필드가 “김“으로 시작되는 라인만 출력. <50students_ext.csv awk -F, 'BEGIN{OFS=","}$9~/개그맨/{print $0}‘ 9째 필드가 “개그맨”을 포함하는 라인만 출력 메인 블록 안에서 if문으로 조건을 지정할 수도 있음. <50students_ext.csv awk -F, 'BEGIN{OFS=","}{if($2>80 && $2<90)print $1}‘ 둘째 필드(국어 점수)가 80보다 크고 90보다 작은 레코드만 뽑아 첫째 필드(학생 이름) 출력 BEGIN 블록에서 변수를 지정하고, 메인 블록에서 연산을 하여, END 블록 에서 결과를 출력할 수 있음. gawk -F, 'BEGIN{OFS=",";sum=0} {sum+=$2} END{print sum,sum/NR}‘ 변수 sum을 0으로 초기화. 각 레코드의 둘째 필드를 sum에 더함. 마지막에 sum과 평균을 출력

awk, gawk 레코드/필드 구분자 지정을 통해, 비정규 포맷의 파일 처리도 가능함. thesaurus.txt는 하나의 표제항에 대한 정보가 여러 라인에 걸쳐서 제시되어 있음. 새로운 표제항으로 넘어갈 때에는 줄바꿈을 2번 함. 줄바꿈 문자를 LF로 하여 다시 저장. <thesaurus.txt awk 'BEGIN{ RS="\n\n"; ORS="\n"; FS="\n"; OFS="\t“ } { print substr($1,3), substr($2,2) }‘ 레코드 구분자는 “\n\n”, 필드 구분자는 “\n”, 출력 레코드 구분자는 “\n”, 출력 필드 구분자는 “\t”으로 지정 각 레코드에서 첫째 필드를 추출하여 셋째 문자부터, 둘째 필드를 추출하여 둘째 문자부터 출력 gawk 'BEGIN{RS="\n\n";ORS="\n";FS="\n"} $2~/@prep/{print $1}‘ 둘째 필드(품사)가 “@prep”인 경우에만 첫째 필드(표제항)를 출력 gawk 'BEGIN{RS="\n\n";ORS="\n";FS="\n";OFS="\t"}$0~/\$15/{print $1}‘ 레코드가 “$15”를 포함하는 경우(센스가 15개 이상)에만 첫째 필드(표제항) 출력

EmEditor를 이용한 테이블 자료 처리 EmEditor Professional의 편집 메뉴 안의 CSV 하위메뉴 정렬: 다양한 옵션의 sort 변환: CSV, TSV, 또는 기타 구분자 포맷 사이의 상호 변환 열(column) 선택 열 추출하기 join : 피벗 열(고유 키) 선택 가능. 일치하지 않는 행 선택 가능 필터 기능: 특정 조건을 만족하는 레코드만 추출

csvkit 테이블 형식, 특히 csv 파일을 처리하는 데 특화된 도구. 파이썬으로 작성. 설치 방법 필드 구분자는 default로 쉼표 입력 파일의 첫째 라인은 header임을 전제로 함. 이 header를 적극 이용. 설치 방법 python -m ensurepip (pip이 설치되어 있는지 확인) sudo pip install -U pip (pip을 최신 버전으로 업데이트) sudo pip install csvkit (pip을 이용하여 csvkit를 다운로드하여 설치) 유닉스의 기본 command line tool과 비슷하면서 csv 파일 처리에 특화 된 도구들 제공: csvsort, csvgrep, csvcut, csvjoin 기타 도구들 csvstack : 복수의 csv 파일들을 수직으로 통합. (참고: join은 수평 통합) csvstat : 각 필드에 대한 통계 정보 제공. R의 summary 함수와 비슷. csvsql : csv 파일을 관계형 DB처럼 취급하여 SQL 쿼리를 적용함. csvlook : csv 파일을 표 모양으로 예쁘게 출력함.

in2csv, csvlook, csvclean 지원하는 입력 파일 엑셀 파일: .xls .xlsx JSON 파일 고정폭 포맷 파일(fixed-width formatted file) default 출력은 standard output(화면) redirection (>)으로 결과를 파일로 저장 csvlook : command line에서 csv 파일을 표 모양으로 보여줌. 입력 파일의 필드가 너무 많아 화면에 다 들어오지 않을 경우 <input csvlook | less -S 화면 wrapping 없이, 화살표 키와 page down 키 등으로 navigate csvclean : 입력파일의 오류를 찾아내고 수정해 줌. https://csvkit.readthedocs.io/en/1.0.1/index.html

csvcut 입력 파일의 특정 필드를 추출, 재배열 스위치 -n : (name) 각 필드의 title을 출력 스위치 -c : (column) 특정 필드를 지정하여 추출 필드 지정 방법 1: 필드넘버 : csvcut -c 1,8,9 : 1,8,9째 필드 추출 필드 지정 방법 2: 필드이름 : csvcut -c name,avg,job : 이름, 평균, 직업 필드 추 출 일반 command line tool인 cut과 매우 유사하나 필드넘버 대신 필드이름을 사용하여 필드를 지정할 수 있다는 장점이 있 음. csvkit의 여러 tool 중 가장 먼저 개발되었고 csvkit의 나머지 tool에 대한 아이디어, 모델을 제공하였음.

csvgrep 특정 필드에 대해, 특정 문자열이나 정규표현을 포함하는지 검사하여 매치되는 레코드만 출력 특정 필드에 대해, 특정 문자열이나 정규표현을 포함하는지 검사하여 매치되는 레코드만 출력 <50students_ext.csv csvgrep -c avg -m 76 스위치 -m : (match) 단순 문자열 일치 여부 검사 avg 필드가 문자열 “76”을 포함하는 레코드만 출력 아스키 문자 이외의 문자를 사용하면 에러가 남. C:\cygwin64\lib\python2.7 디렉토리 안에 sitecustomize.py 파일이 없으면 새로 만들어 아래의 두 줄을 써 넣을 것. 이 파일이 이미 있으면 기존 파일 맨 끝에 아래의 두 줄을 첨가할 것. import sys sys.setdefaultencoding('utf-8') 이 조치를 취하면 스위치 -m(단순 문자열 매칭)에서는 잘 작동하나 스위치 - r(정규표현 매칭)에서는 여전히 제대로 작동하지 않음. <50students_ext.csv csvgrep -c sum -r 4.2 스위치 -r : (regular expression) 정규표현 일치 여부 검사 sum 필드가 정규표현 “4.2”를 포함하는 레코드만 검사

csvsort 특정 필드를 기준으로 소팅함. 필드 지정 방법은 csvcut과 동일함. (필드넘버, 필드이름) 해당 필드가 문자열인지 숫자인지 알아서 판단함. 따라서 -g, -n 같은 스위치를 지정해 줄 필요 없음. 스위치 -r : (reverse) 내림차순 소팅 <50students_ext.csv csvsort -c sum -r sum(총점) 필드를 기준으로 내림차순 소팅

csvjoin 두 개의 csv 파일을 수평으로 통합함. 피벗필드를 중심축으로 하여 두 파일 통합. 피벗필드는 한 번만 나옴.

csvstack 동일한 필드들로 이루어진 복수의 csv 파일들을 수직으로 통합함. 각 파일의 첫째 라인에 필드 이름이 있으나, 출력 파일에서 필드 이름 은 맨 앞에 한 번만 나옴. 스위치 -g f1,f2,f3,…fn : (group) 맨 앞에 group이라는 필드를 추가하 여, n번째 입력파일에서 온 레코드는 fn이라는 값을 부여함. csvstack -g m,f stu_male.csv stu_female.csv 남학생 성적 파일과 여학생 성적 파일을 수직 통합하되, 남학생은 m으로, 여학 생은 f로 표시함.

csvsql SQL (structured query language) : 관계형(relational) 데이터베이스에 서 특정 정보를 추출하기 위해 고안된 쿼리 언어. 데이터베이스 분야에서는 must-know 다양한 명령어가 있으나 가장 많이 쓰이는 것은 select select 필드 from 입력 where 조건 : 입력 테이블로부터 조건을 만족시키는 레 코드의 필드들을 추출함 csvsql은 csv 파일을 마치 관계형 DB인 것처럼 취급하여, 이로부터 sql 을 통해 원하는 정보를 추출할 수 있게 함. <50students_ext.csv csvsql --query "select * from stdin where avg > 90“ 표준입력(stdin)으로부터 avg가 90을 넘는 레코드를 추출하여 모든 필드(*) 출력