11 장. 유닉스 유틸리티 이용하기. Contents  학습목표  유닉스 시스템이 제공하는 다양한 유틸리티의 사용방법을 익힌 다  파일의 행수, 단어수, 문자수를 찾는 방법을 익힌다  파일을 정렬하고 내용의 중복을 제거하는 방법을 익힌다.  파일을 분할하거나.

Slides:



Advertisements
Similar presentations
Python Ch.06 RaspberryPi Sejin Oh. Raspberry Pi Python  IDLE(Integrated Development Environment)  라즈베리 파이 배포본들은 일반적으로 파이썬과 파이썬 3 의 IDLE 파 이썬 개발 도구를.
Advertisements

Apr. 25, 2013 Laboratory of Systems Medicine BASIC LINUX COMMANDS.
1 장. 유닉스 개요 및 기본 사용법. Contents  학습목표  유닉스의 특징과 발전 과정을 이해한다.  유닉스 시스템에 접속하고 해제하는 방법을 익힌다.  유닉스 명령어의 사용법을 익힌다.  내용  유닉스 개요 유닉스의 역사와 특징, 구조  유닉스 시스템.
6 장. printf 와 scanf 함수에 대한 고찰 printf 함수 이야기 printf 는 문자열을 출력하는 함수이다. – 예제 printf1.c 참조 printf 는 특수 문자 출력이 가능하다. 특수 문자의 미 \a 경고음 소리 발생 \b 백스페이스 (backspace)
11 장. 유닉스 유틸리티 이용하기. Contents  학습목표  유닉스 시스템이 제공하는 다양한 유틸리티의 사용방법을 익힌 다  파일의 행수, 단어수, 문자수를 찾는 방법을 익힌다  파일을 정렬하고 내용의 중복을 제거하는 방법을 익힌다.  파일을 분할하거나.
정보 보안 개론과 실습 네트워크 해킹과 보안 3부 해킹 전 정보 획득 Chapter 10. 목록화.
C++ Tutorial 1 서강대학교 데이터베이스 연구실.
Chapter 7 ARP and RARP.
DB 프로그래밍 학기.
DB 프로그래밍 학기.
IT Application Development Dept. Financial Team May 24, 2005
Unix(Linux) shell programming
디렉토리 다루기 ㅎㅎ 유닉스 파일 시스템 현재 디렉토리 확인 : pwd 디렉토리 이동 : cd
UNIX의 중급 명령어 UNIX의 고급 명령어 연습 문제
리눅스 기본 명령어 및 Vi 명령어 정리 2015/1, 컴퓨터의 개념 및 실습.
6장 Mysql 명령어 한빛미디어(주).
2-1장. 리눅스 명령어.
 13장. 배시쉘 프로그래밍.
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
[beginning] Linux & vi editor
14장 질의응답 한빛미디어(주).
SQL*PLUS.
테이블 : 데이터베이스를 구성하는 요소로 같은 성격에 정보의 집합체. 레코드 : 하나의 정보를 가지고 있는 컬럼의 집합체
Root Filesystem Porting
Heesang kim PL/SQL 3 Heesang kim.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
Root Filesystem Porting
Chapter 2. Finite Automata Exercises
Linux Master 김희승 임승한 OneScore 임승한.
메시지 큐[5] – test1.c 메시지 제어: msgctl(2) #include <sys/msg.h>
Homework #5 (1/3) 다음을 수행한 후, 결과 파일들을 출력하여 제출한다.
11장. 1차원 배열.
인터넷응용프로그래밍 JavaScript(Intro).
제4장 유닉스 쉘 숙명여대 창병모 2011 가을.
Linux/UNIX Programming
솔라리스10 3장. 솔라리스 패키지 관리.
27장. 모듈화 프로그래밍.
Linux/UNIX Programming
UNIX Unbounded A Beginning Approach
☆ASCII☆ 김연주.
Linux/UNIX Programming
User Datagram Protocol (UDP)
Regular Expression 1 Powerful pattern matching with regular expression to a string while () { if ( /ab*c/ ) { print $_; } } substitute operator s/abc*c/def/;
editing program files with vi 기본적인 Linux commands
자바 5.0 프로그래밍.
Linux/UNIX Programming
Linux/UNIX Programming
Regular Expression 1 Powerful pattern matching with regular expression to a string while () { if ( /ab*c/ ) { print $_; } } substitute operator s/abc*c/def/;
Command line tools 한국어 정보의 전산 처리
제 6 강 Getting started.
제 15 강 문자와 코드 shcho.pe.kr.
소리 편집 안 재 형.
시스템 인터페이스 Lab#5 쉡 실습.
DA :: 퀵 정렬 Quick Sort 퀵 정렬은 비교방식의 정렬 중 가장 빠른 정렬방법이다.
Linux 9.X 기초에서 활용까지 Chapter 06 VI 편집기.
 파일 아카이브와 압축 명령 익히기.
Homework #5 (1/3) 다음을 수행한 후, 결과 파일들을 출력하여 제출한다.
Chapter 10 데이터 검색1.
시스템 인터페이스 Lab1 X-window 및 명령어 사용.
Homework #3 (1/3) 다음을 수행한 후, 결과 파일들을 출력하여 제출한다.
4. 셸을 이용한 명령어 입력. Unix 시스템 쉘 간단한 셸 명령 명령 매개변수(Command arguments)
구조체(struct)와 공용체(union)
제4장 유닉스 쉘 숙명여대 창병모
실습과제 (변수와 자료형, ) 1. 다음 작업 (가), (나), (다)를 수행하는 프로그램 작성
Excel 일차 강사 : 박영민.
제 29 강 스트링(string) 다루기 s a i s . s T i h t g r i n.
윈도우에서의 유니코드.
Linux/UNIX Programming
Linux/UNIX Programming
Presentation transcript:

11 장. 유닉스 유틸리티 이용하기

Contents  학습목표  유닉스 시스템이 제공하는 다양한 유틸리티의 사용방법을 익힌 다  파일의 행수, 단어수, 문자수를 찾는 방법을 익힌다  파일을 정렬하고 내용의 중복을 제거하는 방법을 익힌다.  파일을 분할하거나 원하는 부분을 잘라 붙이는 방법을 익힌다  내용  파일 정보수집 : wc  파일 정렬 : sort  파일 분할 : split  중복 삭제 : uniq  필드 잘라내기 : cut  두 파일 연결하기 : paste  파일 덤프 : dd  학습목표  유닉스 시스템이 제공하는 다양한 유틸리티의 사용방법을 익힌 다  파일의 행수, 단어수, 문자수를 찾는 방법을 익힌다  파일을 정렬하고 내용의 중복을 제거하는 방법을 익힌다.  파일을 분할하거나 원하는 부분을 잘라 붙이는 방법을 익힌다  내용  파일 정보수집 : wc  파일 정렬 : sort  파일 분할 : split  중복 삭제 : uniq  필드 잘라내기 : cut  두 파일 연결하기 : paste  파일 덤프 : dd

IT CookBook, 유닉스 이론과 실습 파일 정보 수집 - wc  파일의 라인수, 단어수, 문자수 출력  옵션  -c : 바이트 수  -m : 문자수  -C : -m 과 동일  -l : 라인 수  -w : 화이트 스페이스나 새로운 행으로 구분된 단어수 wc [ 옵션 ] 파일명 -c : byte -m : 문자 $ echo $LANG// ko 확인, C:ascii 영문 $ wc –c// 가을  4 ko 일떄. $ wc –m// 가을  2 $ locale -a

IT CookBook, 유닉스 이론과 실습 44 Figure The wc Command

IT CookBook, 유닉스 이론과 실습 55 파일 정보 수집 - wc  사용 예 텔넷 cookook.co.kr $ ls -l ~ total 22 drwxr-xr-x 2 user1 staff 2 Aug 10 01:10 Backup/ -rw user1 staff 350 May 18 00:58 dead.letter -rw-r--r-- 1 user1 staff 165 Aug 10 01:28 local.cshrc -rw-r--r-- 1 user1 staff 170 Aug 10 01:33 local.login -rw-r--r-- 1 user1 staff 130 Apr 12 19:14 local.profile... $ ls -l > test_wc $ 텔넷 cookook.co.kr $ wc -c test_wc 70 test_wc $

IT CookBook, 유닉스 이론과 실습 66 [ 실습하기 ] 파일 정보 수집 - wc 1)wc /etc/passwd 2)wc /etc/hosts 3)wc -l /etc/services 4)cat /etc/hosts | wc -l 5)ls –l /usr/bin | wc –l 6)??? 1)/etc/passwd 파일의 정보를 확인 2)/etc/hosts 파일의 정보 확인 3)/etc/services 파일의 라인 수 확 인 4)/etc/hosts 파일의 라인수를 확인 하는 다른 방법 5)/usr/bin 디렉토리 파일의 라인 수 가 의미하는 것은 무엇인가 ? 6) 현재 디렉토리에 파일이 몇개 있 는지 알려면 어떻게 해야 하는가 ?

IT CookBook, 유닉스 이론과 실습 파일 정렬 - sort  텍스트 파일의 내용을 지정한 방법으로 정렬하여 화면에 출력  정렬기준 ①환경변수 LC_COLLATE ②환경변수 LANG (LC_COLLATE 가 없으면 ) 유니코드 : 공백 -> 특수문자 -> 숫자 -> 영문자 아스키코드 : 공백 -> 숫자 -> 영문대문자 -> 영문소문자, 특수문자는 사이사이  옵션  sort [ 옵션 ] 파일명 옵션기능옵션기능 -b 앞에 붙는 공백을 무시 -r 역순으로 정렬 -c 정렬이 되지 않은 상태로 출력 -u 중복행 삭제 -d 사전순으로 정렬 -o 파일명정렬된 결과를 파일에 저장 -f 대소문자 구분 안함 -t 문자지정한 문자를 필드 구분자로 사용 -k # # 필드 기준으로 정렬 + 번호번호 +1 필드를 기준으로 정렬 -m 정렬된 파일 통합 +pos1 -pos2 정렬하고자 하는 필드를 지정. pos1 열부터 pos2 열까지 정렬 -n 숫자를 산술값으로 환산

IT CookBook, 유닉스 이론과 실습 88 Figure 6-11 The sort Command blank characters are used to default field separators

IT CookBook, 유닉스 이론과 실습 99 파일 정렬 - sort  사용 예  기본 데이터 (test_sort1)  기본 정렬 : 아스키코드 기준 텔넷 cookook.co.kr $ sort test_sort1 700 abcd !abc #include & This is a test file. Unix ^love _love `love` hi love unix {Love ~love This is a test file unix Unix _love ~love !abc #include love ^love `love` hi &987 abcd {Love 숫자보다 먼저 나오는 특수문자들 숫자들 숫자와 대문자 사이에 나오는 특수문자들 대문자들 대문자와 소문자 사이에 나오는 특수문자들 소문자들 소문자 다음에 나오는 특수문자들

IT CookBook, 유닉스 이론과 실습 10 파일 정렬 - sort  사전식으로 정렬 : -d  역순으로 정렬 : -r 텔넷 cookook.co.kr $ sort –r test_sort1 ~love {Love unix love hi `love` _love ^love Unix This is a test file &987 #include !abc abcd 700 $ 텔넷 cookook.co.kr $ sort –d test_sort1 700 abcd &987 {Love This is a test file. Unix !abc hi #include ^love _love `love` love ~love unix $ 첫문자가 공백문자 & 는 무시하고 987 로 간주 ! 는 무시 앞의 특수문자들 무시 공백행들 { 는 무시하고 Love 로 간주 기본 정렬의 역순

IT CookBook, 유닉스 이론과 실습 11 파일 정렬 - sort  기본 데이터 : test_sort2  필드 정렬하기 : + 번호 또는 -k 001 Hong Gil-Dong 80 M 002 Park Ji-Soo 100 M 003 Lee Na-Young 54 F 004 Kim Chan-Sook 60 F 005 Han Ju-Hyun 75 M 006 Jyun Doo-Ri 49 F 007 Lee Mi-Ra 59 F 텔넷 cookook.co.kr $ sort -k 2 test_sort2 005 Han Ju-Hyun 75 M 001 Hong Gil-Dong 80 M 006 Jyun Doo-Ri 49 F 004 Kim Chan-Sook 60 F 007 Lee Mi-Ra 59 F 003 Lee Na-Young 54 F 002 Park Ji-Soo 100 M $ 텔넷 cookook.co.kr $ sort +1 test_sort2 005 Han Ju-Hyun 75 M 001 Hong Gil-Dong 80 M 006 Jyun Doo-Ri 49 F 004 Kim Chan-Sook 60 F 007 Lee Mi-Ra 59 F 003 Lee Na-Young 54 F 002 Park Ji-Soo 100 M $ 두번째 필드 기준

IT CookBook, 유닉스 이론과 실습 12 파일 정렬 - sort  +pos1 -pos2  숫자 처리 : -n 텔넷 cookook.co.kr $ sort -n -k 4 test_sort2 006 Jyun Doo-Ri 49 F 003 Lee Na-Young 54 F 007 Lee Mi-Ra 59 F 004 Kim Chan-Sook 60 F 005 Han Ju-Hyun 75 M 001 Hong Gil-Dong 80 M 002 Park Ji-Soo 100 M $ 텔넷 cookook.co.kr $ sort test_sort2 005 Han Ju-Hyun 75 M 001 Hong Gil-Dong 80 M 006 Jyun Doo-Ri 49 F 004 Kim Chan-Sook 60 F 003 Lee Na-Young 54 F 007 Lee Mi-Ra 59 F 002 Park Ji-Soo 100 M $ 텔넷 cookook.co.kr $ sort -k 4 test_sort2 002 Park Ji-Soo 100 M 006 Jyun Doo-Ri 49 F 003 Lee Na-Young 54 F 007 Lee Mi-Ra 59 F 004 Kim Chan-Sook 60 F 005 Han Ju-Hyun 75 M 001 Hong Gil-Dong 80 M $

IT CookBook, 유닉스 이론과 실습 13 파일 정렬 - sort  2 차 정렬  정렬 결과 저장 : -o 텔넷 cookook.co.kr $ sort test_sort2 004 Kim Chan-Sook 60 F 006 Jyun Doo-Ri 49 F 001 Hong Gil-Dong 80 M 005 Han Ju-Hyun 75 M 002 Park Ji-Soo 100 M 007 Lee Mi-Ra 59 F 003 Lee Na-Young 54 F $ 텔넷 cookook.co.kr $ sort -n o sort.out test_sort2 $ cat sort.out 006 Jyun Doo-Ri 49 F 003 Lee Na-Young 54 F 007 Lee Mi-Ra 59 F 004 Kim Chan-Sook 60 F 005 Han Ju-Hyun 75 M 001 Hong Gil-Dong 80 M 002 Park Ji-Soo 100 M $ 3 번 필드만을 기준으로 정렬 3 열이 같으면 2 열을 기준으로 정렬

IT CookBook, 유닉스 이론과 실습 14 파일 정렬 - sort  필드 구분자 지정하기 : -t 텔넷 cookook.co.kr $ sort -t: /etc/passwd adm:x:4:4:Admin:/var/adm: aiuser:x:60003:60001:AI User:/: bin:x:2:2::/usr/bin: daemon:x:1:1::/: dhcpserv:x:18:65:DHCP Configuration Admin:/: dladm:x:15:65:Datalink Admin:/: ftp:x:21:21:FTPD Reserved UID:/: ( 중략 ) user1:x:60005:10::/home/user1:/usr/bin/bash user2:x:60006:10::/home/user2:/usr/bin/bash uucp:x:5:5:uucp Admin:/usr/lib/uucp: webservd:x:80:80:WebServer Reserved UID:/: xvm:x:60:60:xVM User:/: zfssnap:x:51:12:ZFS Automatic Snapshots Reserved UID:/:/usr/bin/pfsh $ $ sort –t : +2 -3n /etc/passwd // ??? 이름순으로 정렬

IT CookBook, 유닉스 이론과 실습 15 Figure 6-12 Sort by Fields: Fields Within A Line When the data that control the data sequence are not at the beginning of the line, we need a field sort. The UNIX sort defines a field as a set of characters delimited by a single blank or a tab.

IT CookBook, 유닉스 이론과 실습 16 Figure 6-13 Field Specifier Examples

IT CookBook, 유닉스 이론과 실습 17 Figure 6-14 Null Field Impact

IT CookBook, 유닉스 이론과 실습 18 Figure 6-15 Global and Local Options

IT CookBook, 유닉스 이론과 실습 19 Figure 6-16 Sorting Adjacent Fields

IT CookBook, 유닉스 이론과 실습 20 Session 6.22 Sort by City $ sort censusSpace Chicago IL Houston TX Los_Angeles CA New_YorkNY Philadelphia PA Session 6.23 Sort by State $ sort censusSpace Los_Angeles CA Chicago IL New_York NY Philadelphia PA Houston TX

IT CookBook, 유닉스 이론과 실습 21 Session 6.25 Change Sort Delimiter $ sort -t'&' censusAmp Los Angeles &CA & & & Chicago &IL & & & New York &NY & & & Philadelphia &PA & & & Houston &TX & & & Session 6.26 Invalid Numeric Sort $ sort +4 census Houston TX Chicago IL Los_Angeles CA New_York NY Philadelphia PA

IT CookBook, 유닉스 이론과 실습 Session 6.27 Sort on Numeric Fields $ sort -n +4 census Philadelphia PA Houston TX Chicago IL Los_Angeles CA New_York NY

IT CookBook, 유닉스 이론과 실습 23 Session 6.28 Merge Two Files $ sort -m males females Andre Betty Diana George Mai Phan Session 6.29 Sort Census Data by State Using unique sort field $ sort -t'/' census10 Phoenix /AZ/1881/ / / /17705 Los Angeles /CA/1850/ / / /19906 San Diego /CA/1850/ / / /18651 Chicago /IL/1837/ / / /20349 Detroit /MI/1815/ / / /19660 New York /NY/1898/ / / /22645 Philadelphia /PA/1701/ / / /19750 Dallas /TX/1856/ / / /19485 Houston /TX/1837/ / / /17598 San Antonio /TX/1837/ / / / A merge combines multiple ordered files into one file that is ordered.

IT CookBook, 유닉스 이론과 실습 24 Session 6.30 Eliminate Duplicate Sort Fields in Sort $ sort -t'/' -u census10 Phoenix /AZ/1881/ / / /17705 San Diego /CA/1850/ / / /18651 Chicago /IL/1837/ / / /20349 Detroit /MI/1815/ / / /19660 New York /NY/1898/ / / /22645 Philadelphia /PA/1701/ / / /19750 San Antonio /TX/1837/ / / / Session 6.31Sort in Descending Sequence $ sort -nr census New_York NY Los_Angeles CA Chicago IL Houston TX Philadelphia PA

IT CookBook, 유닉스 이론과 실습 25 Session 6.32 Sort Descending-Method 2 $ sort +2nr -3 census New_York NY Los_Angeles CA Chicago IL Houston TX Philadelphia PA Session 6.33 Sort Ignoring Leading Blanks $ sort -b censusBlanks Los_Angeles CA Chicago IL New_York NY Philadelphia PA Houston TX

IT CookBook, 유닉스 이론과 실습 Session 6.37 Multiple-Pass Sort $ sort -t'/' census10 Phoenix /AZ/983403/789704/591142/17705 San Diego /CA/ /875538/553612/18651 Los Angeles /CA/ / / /19906 Chicago /IL/ / / /20349 Detroit /MI/ / /441736/19660 New York /NY/ / / /22645 Philadelphia /PA/ / /736895/19750 Dallas /TX/ /904599/649527/19485 Houston /TX/ / / /17598 San Antonio /TX/935933/785940/446701/

IT CookBook, 유닉스 이론과 실습 27 Session 6.38 Multiple-Pass Sort-ASCII and Numeric $ sort -t'/' n -3 census10 Phoenix /AZ/983403/789704/591142/17705 San Diego /CA/ /875538/553612/18651 Los Angeles /CA/ / / /19906 Chicago /IL/ / / /20349 Detroit /MI/ / /441736/19660 New York /NY/ / / /22645 Philadelphia /PA/ / /736895/19750 San Antonio /TX/935933/785940/446701/14144 Dallas /TX/ /904599/649527/19485 Houston /TX/ / / /

IT CookBook, 유닉스 이론과 실습 28 Session 6.39 Sort State Ascending, Population Descending $ sort -t'/' nr -3 census10 Phoenix /AZ/983403/789704/591142/17705 Los Angeles /CA/ / / /19906 San Diego /CA/ /875538/553612/18651 Chicago /IL/ / / /20349 Detroit /MI/ / /441736/19660 New York /NY/ / / /22645 Philadelphia /PA/ / /736895/19750 Houston /TX/ / / /17598 Dallas /TX/ /904599/649527/19485 San Antonio /TX/935933/785940/446701/

IT CookBook, 유닉스 이론과 실습 29 Session 6.40 Find Largest City in Each State $ sort -b n -3 census20 | sort -bu Phoenix AZ Los_Angeles CA Washington DC Jacksonville FL Chicago IL Indianapolis IN Boston MA Baltimore MD Detroit MI New_York NY Columbus OH Philadelphia PA Memphis TN Houston TX Milwaukee WI

IT CookBook, 유닉스 이론과 실습 30 Figure The tr Command tr cannot accept a filename as an argument; to translate a file, use input direction or pipe the lines from another command.

IT CookBook, 유닉스 이론과 실습 31 Transforming Files: tr tr copies the standard input to the standard output with substitution or deletion of selected characters input characters from string1 are replaced with the corresponding characters in string2 (the last character in string2 is used for padding if necessary) $ /usr/ucb/tr $ which tr $ whereis tr $ tr –dsc string1 string2// $ /usr/ucb/tr $ which tr $ whereis tr with the –c option, string1 is substituted with its complement; i.e., all characters that are not in the original string1 the –d option results in deletion from the input string of all characters specified in string1 Squeeze duplicates) the –s option condenses all repeated characters in the input string to a single character (Squeeze duplicates)

IT CookBook, 유닉스 이론과 실습 32 $ echo "a lot of space" | /usr/ucb/tr alo xyz--> transfer a to x, l to y --> and o to z x yzt zf spxce --> transfer all lower case characters --> to upper case $ echo "a lot of space" | /usr/ucb/tr “ a-z ” “ A-Z ” A LOT OF SPACE --> transfer all spaces into dots $ echo "a lot of space" | /usr/ucb/tr " ". a...lot.....of......space --> transfer all spaces into dots and --> compact the dots $ echo "a lot of space" | /usr/ucb/tr “ “. | /usr/ucb/tr -s "." a.lot.of.space $ _ Transforming Files with tr: Examples

IT CookBook, 유닉스 이론과 실습 33 /* Translate Vowels to Uppercase */ $ tr "aeiou" "AEIOU" It is very easy to use TRANSLATE. #input It Is vEry EAsy tO UsE TRANSLATE. #output /* Translate Strings Don't Match */ $ tr "aeiou" "AE?" # Case 1: string2 is shorter than string1 It is very easy to use translate. It ?s vEry EAsy t? ?sE trAnslAtE. $ tr "aei" "AEIOU" # Case 2: string1 is shorter than string2 It is very easy to use translate. It Is vEry EAsy to usE trAnslAtE. Example

IT CookBook, 유닉스 이론과 실습 34 /* Squeeze Output with Translate */ $ tr -s "ie" "dd“/* i  d, e  d & squeeze */ The fiend did dastardly deeds Thd fdnd d dastardly ds /* Using Translate's Complement Option */ $ tr -c "aeiou" "*" It is very easy to use TRANSLATE. ***i***e***ea****o*u*e*********** Example

IT CookBook, 유닉스 이론과 실습 35 Example Session 6.47 /* Using Translate to Parse Words-Part 2 */ $ tr -cs "A-Za-z" "\012" <dastardly.txt | sort -uf dastardly deeds/* unique & ignore case */ didfiendHeThetrulywas

IT CookBook, 유닉스 이론과 실습 36 Example $ tr –sc “A-Za-z” “\012” < file1 | sort | uniq –c $ tr –sc “A-Za-z” “\012” file1.word $ tail +2 file1.word > file1.next $ paste file1.word file1.next $ paste file1.word file1.next | sort | uniq –c > file1.bigram $ sort –nr < file1.bigram 387ofthe 287 inthe …

IT CookBook, 유닉스 이론과 실습 37 Session 6.43 Delete Characters Using Translate $ tr -d "aeiouAEIOU" It is very easy to use TRANSLATE t s vry sy t s TRNSLT Session 6.44 Squeeze Output with Translate $ tr -s "ie" "dd" The fiend did dastardly deeds Thd fdnd d dastardly ds

IT CookBook, 유닉스 이론과 실습 파일 분할 - split  큰 파일을 일정한 크기의 여러 개 작은 파일로 분할  분할된 파일 이름은 xaa, xab, … 순으로 생성  옵션  -b n : 크기가 n 바이트인 파일로 분할  -n : n 줄씩 분할  옵션을 지정하지 않으면 1000 줄씩 분할  파일을 지정하지 않으면 표준입력내용을 분할 저장 split [ 옵션 ] [ 파일명 ]

IT CookBook, 유닉스 이론과 실습 39 파일 분할 - split  사용 예  기본 데이터 : test_split  행을 기준으로 파일 분할  바이트를 기준으로 파일 분할 텔넷 cookook.co.kr $ cp /etc/services test_split $ wc -l test_split 134 test_split $ 텔넷 cookook.co.kr $ split -30 test_split $ ls test_split1 xaa xab xac xad xae $ wc -l x* 30 xaa 30 xab 30 xac 30 xad 14 xae 134 total $ 텔넷 cookook.co.kr $ wc -c test_split 4543 test_split $ split -b 512 test_split $ ls test_split xaa xab xac xad xae xaf xag xah xai $ wc -c x* 512 xaa 512 xab 512 xac 512 xad 512 xae 512 xaf 512 xag 512 xah 447 xai 4543 total $

IT CookBook, 유닉스 이론과 실습 중복 삭제 - uniq  파일 또는 표준입력으로 입력된 내용 중 중복된 내용의 줄이 연속으로 있으면 하나만 남기고 삭제  파일을 지정하지 않으면 표준입력내용을 처리  입출력 파일 이름은 달라야 함  옵션  -u : 중복되지 않는 줄만 출력  -d : 중복된 줄 중 1 줄만 출력  -n : 원하는 필드 앞의 공백과 문자열 무시. n 은 필드 번호 uniq [ 옵션 ] [ 입력파일 [ 출력파일 ] ]

IT CookBook, 유닉스 이론과 실습 41 Figure The unique Command If the lines are already adjacent to each other, we can use unique utility in order to delete duplicate lines. The uniq command deletes duplicate lines, keeping the first and delete the others. To be deleted, the lines must be adjacent.

IT CookBook, 유닉스 이론과 실습 42 중복 삭제 - uniq  사용 예  기본 데이터 : test_uniq1  중복 제거 aaaaa abcde bbbbb abcde bbbbb abcde ccc 텔넷 cookook.co.kr $ uniq test_uniq1 aaaaa abcde bbbbb abcde bbbbb abcde ccc $

IT CookBook, 유닉스 이론과 실습 43 중복 삭제 - uniq  정렬과 중복 제거를 동시에  중복 없는 행보기  중복 행과 중복 횟수 보기 텔넷 cookook.co.kr $ uniq –u test_uniq1 aaaaa ccc $ 텔넷 cookook.co.kr $ uniq –d test_uniq1 abcde bbbbb $ uniq –c test_uniq1 1 aaaaa 4 abcde 3 bbbbb 1 ccc $ 텔넷 cookook.co.kr $ sort test_uniq1 aaaaa abcde bbbbb ccc $ sort test_uniq1 | uniq aaaaa abcde bbbbb ccc $

IT CookBook, 유닉스 이론과 실습 필드 잘라내기 - cut  파일의 각 행에서 선택된 필드를 잘라냄 ( 필드 : 탭으로 구분 )  옵션  -c 리스트 : 각 줄에서 잘라낼 문자 위치 지정  -f 필드수 : 지정한 필드 잘라냄  -d 문자 : 필드 구분자 변경 cut [ 옵션 ] [ 파일명 ]

IT CookBook, 유닉스 이론과 실습 45 Figure 6-9 The cut Command

IT CookBook, 유닉스 이론과 실습 46 필드 잘라내기 - cut  사용 예  기본 데이터 : test_cut  문자 추출 : -c, 필드추출 : -f 001 Hong Gil-Dong 80 M 002 Park Ji-Soo 100 M 003 Lee Na-Young 54 F 004 Kim Chan-Sook 60 F 005 Han Ju-Hyun 75 M 006 Jyun Doo-Ri 49 F 007 Lee Mi-Ra 59 F 텔넷 cookook.co.kr $ cut –c5-8 test_cut Hong Park Lee Kim Han Jyun Lee $ 텔넷 cookook.co.kr $ cut -f2,3 test_cut Hong Gil-Dong Park Ji-Soo Lee Na-Young Kim Chan-Sook Han Ju-Hyun Jyun Doo-Ri Lee Mi-Ra $ Tab

IT CookBook, 유닉스 이론과 실습 47 필드 잘라내기 - cut  필드 구분자 지정하기 : -d 텔넷 cookook.co.kr $ cut -d: -f 1 /etc/passwd | more root daemon bin sys adm lp smtp uucp listen nobody noaccess nobody4 mysql ( 중략 ) -- 계속 -- 텔넷 cookook.co.kr $ cut -d' ' -f 2 test_sort2 Hong Park Lee Kim Han Jyun Lee $

IT CookBook, 유닉스 이론과 실습 Session 6.17 Using Slash for Field Separator $ cat censusSlash Chicago/IL/ / / Houston/TX/ / / Los Angeles/CA/ / / New York/NY/ / / Philadelphia/PA/ / / $ cut -f1,3,5 -d"/" censusSlash Chicago/ / Houston/ / Los Angeles/ / New York/ / Philadelphia/ /736895

IT CookBook, 유닉스 이론과 실습 49 [ 실습하기 ] 필드 잘라내고 중복삭제 -uniq, cut 1)cp /etc/passwd. 2)cut -d: -f 7 passwd > shell.out 3)more shell.out 4)sort shell.out | uniq 1)/etc/passwd 파일을 현재 디렉토리로 복사 2)passwd 파일중 필드 구분자를 : 로 지 정하여 7 번째 필드를 추출하여 shell.out 파일로 저장 3) 저장한 파일 내용 확인 4)shell.out 파일 내용을 정렬한 후 중복 제거 => 위 작업의 결과로 알 수 있는 것은 ?

IT CookBook, 유닉스 이론과 실습 두 파일 연결하기 - paste  지정한 파일의 내용을 붙임  사용자가 지정한 두 개 이상의 파일 내용 중 같은 줄을 붙이거 나 한 파일의 끝에 다른 파일의 내용을 추가  옵션  -s : 파일의 끝에 추가 (split 로 나눈 파일을 원래대로 붙일 때 )  -d 문자 : 필드 구분자  - : 파일 대신 표준 입력 사용 paste [ 옵션 ] [ 파일 1 파일 2... ]

IT CookBook, 유닉스 이론과 실습 51 Figure 6-10 The paste Command

IT CookBook, 유닉스 이론과 실습 52 두 파일 연결하기 - paste  사용 예  test_paste1  test_paste2  파일 붙이기 Hong Gil-Dong Park Ji-Soo Lee Na-Young Kim Chan-Sook Han Ju-Hyun Jyun Doo-Ri Lee Mi-Ra 텔넷 cookook.co.kr $ paste test_paste2 test_paste1 Hong Gil-Dong 001 Park Ji-Soo 002 Lee Na-Young 003 Kim Chan-Sook 004 Han Ju-Hyun 005 Jyun Doo-Ri 006 Lee Mi-Ra 007 $

IT CookBook, 유닉스 이론과 실습 53 두 파일 연결하기 - paste  두 파일의 행이 같지 않을 경 우  test_paste3  필드 구분자 지정 : -d  파일 수평 붙이기 : -s 텔넷 cookook.co.kr $ paste -d: test_paste1 test_ paste2 001:Hong Gil-Dong 002:Park Ji-Soo 003:Lee Na-Young 004:Kim Chan-Sook 005:Han Ju-Hyun 006:Jyun Doo-Ri 007:Lee Mi-Ra $ 텔넷 cookook.co.kr $ paste test_paste2 test_paste3 Hong Gil-Dong Park Ji-Soo Lee Na-Young Kim Chan-Sook Han Ju-Hyun Jyun Doo-Ri Lee Mi-Ra $ 텔넷 cookook.co.kr $ paste -s test_paste1 test_paste Hong Gil-Dong Park Ji-Soo Lee Na-Young Kim Chan-Sook Han Ju-Hyun Jyun Doo-Ri Lee Mi-Ra $

IT CookBook, 유닉스 이론과 실습 54 두 파일 연결하기 - paste  cut 과 paste 의 복합 사용  s.dat  u.dat Kim Ji-Soo 10 F Lee Gil-Dong 20 M Lee Gil-San 15 M Park Ji-Soo 21 F Choi Na-Na 20 F aaaaa abcde bbbbb 텔넷 cookook.co.kr $ cut –d’ ‘ -f1 s.dat | paste - u.dat Kim aaaaa Lee abcde Park bbbbb Choi $

IT CookBook, 유닉스 이론과 실습 55 [ 실습하기 ] 파일 연결하기 - paste 1)more /etc/passwd 2)cut –f 1 –d: /etc/passwd > login_list 3)cut –f 5 –d: /etc/passwd > name_list 4)paste –d: name_list login_list > user_list 5)sort –o user_list user_list 1)/etc/passwd 파일 구조 파악 2) 첫번째 필드인 로그인 ID 추출 3) 사용자 이름 추출 (5 번째 필드 ) 4) 파일 합치기 5) 정렬

IT CookBook, 유닉스 이론과 실습 Lab Sessions  Session I 1. Log into the system. 2. Use the cat command to create a file containing the following data. Call it Ch6S1F1. Use tabs to separate the field. 1425Juan George Anna Ben Tuan 18.77

IT CookBook, 유닉스 이론과 실습 Use the cat command to display the file and check accuracy. 4. Use the vi command to correct any errors in thee file. 5. Use the sort command to sort the file Ch6S1F1 according to the first field. Call the sorted file Ch6S1F1(same name) $ sort –o Ch6S1F1 Ch6S1F1

IT CookBook, 유닉스 이론과 실습 Print the file Ch6S1F1. 7. Use the cut and paste commands to swap field 2 and 3 of Ch6S1F1. Session III Caesarian encryption using tr command by shifting each letter five characters. ( 임의의 문자 입력 후 검사 !!!)  엔크립션 ( encryption)& 디크립션 (decryption)

IT CookBook, 유닉스 이론과 실습 59 Session IV IDHourly RateHours Worked Use a command to show the number of workers. 7. Use a command to sort the file based on id. 8. Use one single command to show the worker who is paid the highest hourly rate. 9. Use one single command to show the worker who worked more than anybody else. The command should show only the id of the worker. (using pipe)

IT CookBook, 유닉스 이론과 실습 파일 덤프 - dd  지정한 입력 파일을 지정한 옵션에 따라 변환하여 출력파일 로 저장  옵션  bs=n : 입출력 블록의 크기를 n 바이트로 지정 ( 기본 1 블록 =512 바이트 )  conv=lcase : 알파벳을 소문자로 변환  conv=ucase : 알파벳을 대문자로 변환 dd [ 옵션 ] [ if= 입력파일 ] [ of= 출력파일 ]

IT CookBook, 유닉스 이론과 실습 61 파일 덤프 - dd  사용 예 : 대소문자 전환하기 텔넷 cookook.co.kr $ dd conv=lcase if=test_cut of=test_dd1 0+1 레코드 인 : 0+1 레코드 아웃 $ more test_dd1 001 hong gil-dong 80 m 002 park ji-soo 100 m 003 lee na-young 54 f 004 kim chan-sook 60 f 005 han ju-hyun 75 m 006 jyun doo-ri 49 f 007 lee mi-ra 59 f $

IT CookBook, 유닉스 이론과 실습 62 파일 덤프 - dd  파일 지우기 텔넷 cookook.co.kr $ dd if=/dev/null of=test_dd2 0+0 레코드 인 : 0+0 레코드 아웃 $ more test_dd2 $ ls test_dd2 test_dd2 $

IT CookBook, 유닉스 이론과 실습 장 요약 [1/2]  파일의 정보수집  wc : 파일의 크기를 다양하게 보여주는 명령으로 파일의 행수, 단어 수, 문자수, 바이트 수를 알려준다  파일 정렬  기본 정렬 : sort test_sort  특정 필드를 기준으로 정렬 : sort -f 2 test_sort  숫자를 기준으로 정렬 : sort -n -k 2 test_sort  파일에서 정보 추출  split : 크기가 큰 파일을 작은 파일로 일정하게 나눔. 파일 이름은 xaa, xab,... 순으로 지정 split -30 test_split (30 행씩 분할 )  uniq : 중복된 파일 내용 삭제. sort 와 함께 사용하면 더욱 효과가 좋음 sort test_uniq | uniq  cut : 특정 필드만 잘라냄 cut -f 2 test_cut

IT CookBook, 유닉스 이론과 실습 장 요약 [2/2]  파일의 연결  필드 붙이기 : paste test_paste1 test_paste2  수평 붙이기 : paste -s test_paste1 test_paste2  파일 내용 변환  파일 변환 : dd if=mypc.txt of=test_dd1 conv=ascii  파일 내용 삭제 : dd if=/dev/null of=test_dd2 file1file2 file1 file2

Q & A