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