- 명령라인 인터페이스의 강력함을 살펴본다.
- 유닉스 명령라인 인터페이스를 통해 데이터 분석을 실시한다.
저작권 걱정없이 저작물을 받을 수 있는 경로는 여러 곳이 존재한다. 하지만, PDF, HWP, TXT 파일은 압축하여 제공하고 있어 사람손이 몇번씩 가는 문제점이 있다. 작업과정에 추가로 프로세스를 넣어주어야만 된다. 어차치 TXT로 작업하는데 …
결국에 모두 실패하고, 직지(http://www.jikji.org/)에서 수작업으로 .txt 파일을 생성하여 .txt 파일을 웹에 올려 curl 명령어를 통해 바로 다운로드 받게 소설데이터를 준비했다. 소설 데이터는 B사감과 러브레터 라 고등학교 인문계에서 필독서로 아주 오래전에 읽었던 기억이 난다. 영화로도 만들어지고, TV에서도 방영되었던 것으로 기억된다.
curl 명령어를 통해 https://raw.githubusercontent.com/statkclee/ml/gh-pages/data/B사감과_러브레터.txt 파일을 다운로드 한다.grep 명령어로 정규표현식 패턴을 넣어 단어를 각 행별로 추출하여 쭉 정리해 나간다.sort 명령어로 오름차순으로 정리한다.unique 명령어로 중복을 제거하고 -c 인자플래그를 넣어 중복수를 센다.sort 명령어로 단어갯수를 내림차순으로 정리한다.head 명령어로 가장 빈도가 높은 단어 5개를 추출한다.$ curl -s https://raw.githubusercontent.com/statkclee/ml/gh-pages/data/B%EC%82%AC%EA%B0%90%EA%B3%BC_%EB%9F%AC%EB%B8%8C%EB%A0%88%ED%84%B0.txt | \
grep -oE '\w+' | \
sort | \
uniq -c | \
sort -nr | \
head -n 5
138 처음
132 직지에
65 러브레터
47 때
26 여학교에서만약 두도시 이야기(A Tale of Two Cities)에서 가장 많은 단어를 분석하고자 하는 경우 http://www.gutenberg.org/cache/epub/98/pg98.txt을 인자로 바꿔 넣으면 된다.
명령라인 인터페이스를 사용하면, 애자일(Agile), 다른 기술과 증강(Augmenting)이 가능하며, 확장성(Scalable)이 크며, 연장가능(Extensible)하며, 어디서나 사용(Ubiquitous)되는 장점을 갖는다.
유닉스는 텍스트(Text) 가 어디서나 사용되는 인터페이스로, 각 개별 구성요소는 한가지 작업만 매우 잘 처리하게 설계되었고, 복잡하고 난이도가 있는 작업은 한가지 작업만 잘 처리하는 것을 파이프와 필터 로 자동화하고, 그리고 쉘스크립트 를 통해 추상화한다.
데이터를 가져오는 방식은 결국 텍스트로 유닉스/리눅스 환경으로 불러와야만 된다. csvkit 에 in2csv, csvcut, csvlook, sql2csv, csvsql이 포함되어 있다.
sudo pip install csvkit 명령어로 설치한다.
cp 복사, 원격파일 복사: scp 복사tar, unzip, unrar 명령어로 압축된 파일을 푼다.
.tar.gz, .zip, .rarunpackcsv 파일로 변환.
$ in2csv ne_1033_data.xlsx | csvcut -c county,item_name,quantity | csvlook | headsql2csv --db 'sqlite:///iris.db' --query 'SELECT * FROM iris where petal_length > 6.5' | csvlookcurl -s http://www.gutenberg.org/files/13693/13693-t/13693-t.tex -o number-theory.txtcurl -s http://api.randomuser.me | jq '.'head, sed, awkgrep 명령어에 정규표현식으로 패턴을 담아 매칭되는 것만 뽑아낸다.grep -i session paper.txtshuf 명령어를 사용한다.shuf -n 10 data.csv기본적인 값추출 전략은 grep 명령어로 행을 뽑아내고, cut 명령어로 구분자를 두거나 고정된 열위치에 해당하는 열에서 값을 추출한다. cut 명령어로 열을 쪼개는데 구분자로 ,를 사용하고 뽑아내는 열로 -f 인자를 두고 3번째 행이후 모두를 지정한다.
값을 바꾸거나 삭제할 때 사용하는 명령어가 tr로 translate 번역의 약자다.
공백 을 *로 바꾼다.