RSS구독하기:SUBSCRIBE TO RSS FEED
즐겨찾기추가:ADD FAVORITE
글쓰기:POST
관리자:ADMINISTRATOR
'unexpand'에 해당되는 글 1

출처 : 대전국제IT교육센터 정성재 강사

 

1. sort
(1) 설명 : 파일의 내용을 정렬한다. 아무옵션이 없으면 공백,숫자,대문자,소문자순이다. 참고로
           여기서 숫자는 실제숫자의 대소가 아닌 숫자형태의 문자로 취급한다.
(2) 사용법
   sort [option] 파일이름
(3) option
   -b       : 선행하는 공백문자를 무시한다. (공백라인은 제외)
   -f       : 대,소문자를 무시한다.
   -r       : 정렬 순서를 반대로 하여 내림차순으로 정렬한다. (소문자,대문자,숫자,공백)
   -o 파일명 : 정렬한 결과를 파일명으로 저장한다.
   -c : 파일이 정렬되었는지를 검사한다. 정렬되었으면 아무런 출력도 하지 않고 정렬되지 않았다면
       정렬이 되지 않았다는 메시지를 출력한다.
   -n : 숫자를 같은 문자가 아닌 정말로 숫자로 취급해서 수의 크기대로 정렬한다.
   -u : unique의 약자로 중복되는 라인은 출력하지 않는다.
   +pos    : 1+pos번째 필드를 기준으로 정렬한다. 즉 필드의 시작을 0부터한다. 만약 +m.n형태를
            취하면 1+m번재 필드의 1+n번째 문자를 기준으로 정렬한다.
   +pos1 -pos2 : pos1에서 키를 시작하고 pos2전에 끝낸다. 필드번호와 문자 오프셋은 0으로 시작한
                다. (-k은 1부터 시작한다.)
   -t separator : 각 필드를 구분하는 키의 위치를 구분자로(separator)로 규정한다.
   -k n[,m] : 정렬한 키의 위치를 n번째 필드로 한다.(m값이 있을경우 n에서 시작해서 m에서 끝냄)
             (이 키의 값은 1부터 시작한다. +붙는 것과 다르다.)
(4) 사용예
  (가정) sort.txt파일의 내용이 다음과 같다고 한다.
       abc
        a
       ABC
       1abc
  1) [posein@neuro posein]$ sort sort.txt
      a
     1abc
     ABC
     abc
  2) [posein@neuro posein]$ sort -r -o sortrev.txt sort.txt
     [posein@neuro posein]$ cat sortrev.txt
     abc
     ABC
     1abc
      a
  3) [posein@neuro posein]$ sort -t: -n -k3 /etc/passwd
      => 각 필드를 구분하는 구분자는 ':'를 기준으로 하면 숫자순으로 정렬하고 필드값은 3번째로
        한다.
  4) [posein@neuro posein]$ sort -t: -k2,2n -k5.3,5.4 /etc/passwd
      => 필드의 구분은 :로 하고, 두번째필드로 숫자정렬한다. 정렬한 값이 같은 경우에는 다섯번
        째필드의 세번째와 네번째문자를 비교하여 정렬한다.
(가정2) pos.txt의 내용이 다음과 같다고 한다.
    [posein@neuro posein]$ cat pos.txt
     5 6 2 4 9
     3 2 8 4 3
     1 3 7 3 1
     2 3 4 5 6
     6 1 3 2 2
  1) [posein@neuro posein]$ sort +1 pos.txt
     6 1 3 2 2
     3 2 8 4 3
     2 3 4 5 6
     1 3 7 3 1
     5 6 2 4 9
      => + 옵션은 첫번째필드를 0부터 시작한다.
  2) [posein@neuro posein]$ sort -k 4 pos.txt => 정렬한 키의 기준을 4번째 필드로 한다.
     6 1 3 2 2
     1 3 7 3 1
     3 2 8 4 3
     5 6 2 4 9
     2 3 4 5 6

2. sed
(1) 설명 : 스트림편집기(stream editor)로 쉘 스크립트나 다른 명령의 출력을 여과하는 파이프라인
           을 사용한다. 즉 파일의 내용을 변경없이 화면상 출력만 필터링한다. sed는 ed명령과는
           다르게 입력라인을 하나씩 읽고, 수정하고 출력하기 때문에 버퍼를 사용하지 않는다.
           버퍼를 사용하지 않으면 파일 크기에 제한없이 작업을 할 수 있어 sed는 큰 파일을
           처리할 때 주로 사용한다.
(2) 사용법
   1) sed 'command\
      >문자열' 텍스트파일명
        => 텍스트를 변경하거나 삽입할 경우에는 여러줄을 사용한다. command는 꼭 ' '로 묶는다.
   2) sed [option] 'command' 텍스트파일명
     => 삭제하는 경우등은 한줄에 명령을 내려 수행할 수 있다. 문자열이 붙지 않는 command에
       대해서는 작은따옴표도 생략할 수 있다.
(3) option
   -n : 라인의 지정할 때 쓰인다.
   -f 파일명: 특정한 스크립트가 들어있는 파일로 부터 읽어들여 처리한다.
(4) command
   'n'a\ text : n은 정수값을 넣을 수 있으며, 지정한 줄 밑에 문자열을 추가하여 출력한다. n값을
               설정을 하지 않으면 매 줄마다 밑으로 지정한 text를 덧붙여 화면에 출력한다.
   'n'd       : n은 정수값을 넣을 수 있으며, 지정한 줄을 삭제하여 화면에 출력한다. n값을 설정
               하지 않으면 텍스트파일의 내용을 아무것도 출력하지 않는다. 또한 n값을 '1,4d'방법
               으로 범위를 지정할 수 있다.
   'n'i\ text : 지정한 줄 앞에 문자열을 삽입하여 출력한다. 역시 n값을 설정하지 않으며 매
               줄앞에 문자열을 삽입하여 출력한다.
   p : 선택한 라인을 한번 더 출력한다. '/문자열/p'하면 선택한 문자열이 있는 라인을 한번 더
      출력한다. 그냥 p command만 사용하면 모든 라인을 두번씩 출력한다.
   q : 명시된 라인에 도달할 때 종료한다. 아무값도 설정하지 않으면 1줄만 출력한다.
   r 파일이름 : 파일을 읽어서 출력한다.
   s/string1/string2/ : 각라인의 첫번째 string1만 string2로 바꾼다.
   s/string1/string2/g : 모든 라인의 string1을 string2로 바꿔 출력한다.
(참고1) 현재 리눅스에서는 's\string1\string2\g' 와 's/string1/string2/g' 다 된다.
(4) 사용예
   (가정) test.txt의 내용이 다음과 같다고 가정한다.
    I study linux
    I study windows
    PHP & MySQL
   1) [posein@neuro posein]$ sed 'a\
      > I am King' test.txt
      I study linux
      I am King
      I study windows
      I am King
      PHP & MySQL
      I am King
       => test.txt파일에서 각 행다음에 'I am King'이라는 문자열을 붙여서 출력한다.
   2) [posein@neuro posein]$ sed '2a\
      > I am King' test.txt
      I study linux
      I study windows
      I am King
      PHP & MySQL
       => test.txt파일에서 2행다음에 즉 3행에 'I am King'이라는 문자열을 붙여서 출력한다.
   3) [posein@neuro posein]$ sed 'd' test.txt => 아무 내용도 출력하지 않는다.
   4) [posein@neuro posein]$ sed '2d' test.txt
      I study linux
      PHP & MySQL
       => 2번째 줄을 삭제하고 출력한다.
   5) [posein@neuro posein]$ sed '1,2d' test.txt
      PHP & MySQL
   6) [posein@neuro posein]$ sed 'i\
      > I am LinuxMania' test.txt
      I am LinuxMania
      I study linux
      I am LinuxMania
      I study windows
      I am LinuxMania
      PHP & MySQL
   7) [posein@neuro posein]$ sed 's/study/learning/' test.txt
      I learning linux
      I learning windows
      PHP & MySQL
   8) [posein@neuro posein]$ sed p test.txt => 모든 라인을 2번씩 출력한다.
      I study linux
      I study linux
      I study windows
      I study windows
      PHP & MySQL
      PHP & MySQL
   9) [posein@neuro posein]$ sed '2p' test.txt => 두번째 라인만 2번 출력한다.
      I study linux
      I study windows
      I study windows
      PHP & MySQL
   10)[posein@neuro posein]$ sed '/linux/p' test.txt
       => 'linux'라는 문자열을 찾아 2번 출력한다.
      I study linux
      I study linux
      I study windows
      PHP & MySQL
   11)[posein@neuro posein]$ sed q test.txt
      I study linux
   12)[posein@neuro posein]$ sed '2q' test.txt
      I study linux
      I study windows
(가정3) 여기서 test1.txt의 내용은 다음과 같다.
       I learning linux
       I learning windows
       PHP & MySQL
   13)[posein@neuro posein]$ sed r test.txt test1.txt
      I study linux
      I study windows
      PHP & MySQL
      I learning linux
      I learning windows
      PHP & MySQL
       => 먼저 test.txt라는 파일을 읽어서 출력한 다음에 test1.txt의 내용을 출력한다.
   14)[posein@neuro posein]$ sed 'r test.txt' test1.txt
      I learning linux
      I study linux
      I study windows
      PHP & MySQL
      I learning windows
      I study linux
      I study windows
      PHP & MySQL
      PHP & MySQL
      I study linux
      I study windows
      PHP & MySQL
       => test1.txt파일을 기본으로 출력하는 데 각 라인 다음에 test.txt 파일의 내용을 읽어들여
         출력한다.
   15) [posein@www posein]$ cat sedscr
       s/learning/study/g
       [posein@www posein]$ sed -f sedscr test1.txt
       I study linux
       I study windows
       PHP & MySQL
   16) sed -n '21,30p' /etc/passwd > b.txt
      => /etc/passwd파일의 21번째부터 30번째라인까지를 b.txt로 저장한다.
        head -30 /etc/passwd | tail > b.txt 와 같은 결과이다.

3. expand
(1) 설명 : 일반적으로 설정되어 있는 탭(tab)의 크기(8)를 원하는 공백(space)의 수로 바꾸어
           화면에 출력한다. 즉 tab을 space로 전환시켜주는 명령이다. 기본적으로 원본파일을
           수정하지 않고 표준 출력으로 보여준다.
(2) 사용법
   expand -크기 파일명
   expand -t 크기 파일명
(3) 사용예
   1) [posein@neuro posein]$ cat tab.txt
      a       a       a       a       a
      012345678
        => 일반적인 탭의 간격은 8이다.
   2) [posein@neuro posein]$ expand -t 3 tab.txt
      a  a  a  a  a
      012345678
        => 탭의 간격을 3으로 설정하였다.
   3) [posein@www posein]$ expand -t 5 tab.txt > tab5.txt
      [posein@www posein]$ cat tab5.txt
      a    a    a    a    a
      012345678
         => 탭의 간격을 5으로 설정하였다.

4. unexpand
(1) 설명: 스페이스의 크기를 탭으로 전환시켜 준다.
(2) 사용법
   unexpand options 파일명
(3) options
   -a : 행의 시작 부분의 공백뿐만 아니라 모든 공백을 변환한다.
   -t 공백크기 : 지정한 공백크기를 하나의 Tab(8칸)으로 변환한다. (--tabs=공백크기)
(4) 사용예
   1) [posein@www posein]$ cat tab2.txt
      a     a     a     a     a
      01234567890
       => 현재 공백의 크기가 6이다.
      [posein@www posein]$ unexpand -a -t 6 tab2.txt
      a       a       a       a       a
      01234567890
       => 크기가 6인 모든 공백을 하나의 Tab(8칸)으로 변환한다.
   2) [posein@www posein]$ unexpand -a --tabs=6 tab2.txt > tab6.txt
      [posein@www posein]$ cat tab6.txt
      a       a       a       a       a
      01234567890
       => tab2.txt 문서에서 크기가 6인 모든 공백을 하나의 Tab(8칸)으로 변환한다.

5. cut
(1) 설명 : 데이터의 열(컬럼)을 추출할 때 사용한다. 이 때 추출할 데이터는 파일 안 각 라인의
           글자(character), 바이트(byte) 또는 필드(field)일 수 있다.
(2) 사용법
   cut option file_name
(3) option
   -c : 문자수로 따져서 추출한다.
   -f : 파일 내의 필드로 따져서 추출한다.
   -d : 필드 구분자를 사용한다. (기본값은 TAB 이다.)
(4) 사용예
   1) [posein@www posein]$ cut -c 1-10 /etc/passwd
      linuxone:x
      bluesky:x:
      eagle5:x:5
      fish:x:520
   2) [posein@www posein]$ cut -f 1,3 -d: /etc/passwd
      linuxone:517
      bluesky:518
      eagle5:519
      fish:520
       => /etc/passwd파일의 첫번째,세번째 필드의 값을 보여준다. 필드의 구분은 ':'로 한다.
   3) [posein@www posein]$ cut -f1 -d: /etc/passwd |sort -r |less
      xitem
      xfs
      wnn
      webalizer
      vcsa
      uucp
      sync
      sshd
       => /etc/passwd파일의 첫번째 필드(:기준)부분만 잘라 역으로 정렬한뒤 한페이지단위로
         보여준다.

6. fmt
(1) 설명 : 간단한 문서 포맷도구로 문단의 들여쓰기 중복되는 공백문자등을 처리할 수 있다.
(2) 사용법
   fmt option file_name
(3) option
   -u : 중복되는 공백 문자를 모두 하나로 취급한다.
   -t : 단락의 처음 두 라인의 들여쓰기를 원래대로 유지한다.
   -w : 최대 라인 폭을 설정한다.(디폴트 75컬럼) w를 생략하고 -뒤에 직접 입력해도 된다.
(4) 사용예
   (가정) test2.txt의 문서를 다음과 같다고 하자.
    I study a a linux
    I study windows
    PHP & MYSQL
   1) [posein@www posein]$ fmt -w 10 test2.txt
      I study a
      a linux
      I study
      windows
      PHP &
      MYSQL
   2) [posein@www posein]$ fmt -u test2.txt
      I study a a linux I study windows PHP & MYSQL

7. nl
(1) 설명 : 각 라인에 번호를 붙여 표준출력으로 보여준다.
(2) 사용법
   nl [option] file_name
(3) option
   -s'구분자' : 각 라인위 문자열과 변호를 사이에 구분자를 설정한다.
(4) 사용예
   1) [posein@www posein]$ nl test2.txt
         1  I study a a linux
         2  I study windows
         3  PHP & MYSQL
   2) [posein@www posein]$ nl -s'}' test2.txt
        1}I study a a linux
        2}I study windows
        3}PHP & MYSQL

8. od
(1) 설명 : octal dump의 약자로 파일을 8진수, 10진수, 16진수 또는 ASCII형태로 출력한다.
(2) 사용법
   od [option] file
(3) option
   -o : octal(8진수)로 출력한다. 기본값으로 설정되어 있다.
   -d : decimal(10진수)로 출력한다.
   -x : hexadecimal(16진수)로 출력한다.
   -a : named character
   -c : ASCII값으로 출력한다.
   -f : flationg point(부동소수점형태)로 출력한다.
(4) 사용예
   (가정) test.txt의 파일의 내용이 다음과 같다고 하자.
     worldcup
     linux
   1) [posein@www posein]$ od test.txt
      0000000 067567 066162 061544 070165 066012 067151 074165 000012
      0000017
       => 8진수 형태로 변환한다.
   2) [posein@www posein]$ od -a test.txt
      0000000   w   o   r   l   d   c   u   p  nl   l   i   n   u   x  nl
      0000017
       => named character 값으로 출력한다. 새로운라인을 'nl'로 표시한다.
   3) [posein@www posein]$ od -c test.txt
      0000000   w   o   r   l   d   c   u   p  \n   l   i   n   u   x  \n
      0000017
       => ASCII값으로 출력한다. 새로운라인을 '\n'으로 표시한다.

9. paste
(1) 설명 : 여러 파일의 해당 라인을 합친다. 각 파일의 해당 라인을 연속적으로 출력하고, 새로운
           라인앞에는 탭을 삽입한다.
(2) 사용법
   paste [option] file1 file2
(3) option
   -d 구분자 : 결합하는 라인의 구분자를 지정한다. 기본값은 탭문자이다.
   -s : 한 파일의 내용을 먼저 연속적으로 출력한 후 다음 파일을 덧붙여 출력한다.
(4) 사용예
   (가정) [posein@www posein]$ cat os.txt
          linux
          windows
          [posein@www posein]$ cat lang.txt
          php
          asp
   1) [posein@www posein]$ paste os.txt lang.txt
      linux   php
      windows asp
       => 기본값인 탭문자를 삽입하여 두 파일의 라인을 합친다.
   2) [posein@www posein]$ paste -d: os.txt lang.txt
      linux:php
      windows:asp
       => 구분자로 ':'를 삽입하여 두 파일의 라인을 합친다.
   3) [posein@www posein]$ paste -s os.txt
      linux   windows
       => os.txt파일의 라인을 하나로 합친다.
   4) [posein@www posein]$ paste -s os.txt lang.txt
      linux   windows
      php     asp
       => 먼저 os.txt라는 파일의 라인을 합친뒤에 화면에 출력하고 다음에 lang.txt파일의 라인을
         합쳐서 화면에 출력한다.

10. pr
(1) 설명 : 표준출력으로 파일을 재구성하거나 쓰기 위한 명령으로 문서 파일을 양식화하는 도구로
           사용된다.
(2) 사용법
   pr option file
(3) option
   +페이지 : 지정한 페이지부터 출력한다. 기본값은 1이다.
   -컬럼 : 출력할 열의 수를 정한다.
   -n : 파일에 라인번호를 붙여서 출력한다.
   -d : 라인 사이를 한 라인씩 띄워서 출력한다.
   -h : 각 페이지의 헤더를 명시한다.
   -l 라인 : 페이지 길이를 '라인'에 지정한 수로 설정한다. 기본값은 66이다.
   -m : 각 파일을 열(column)대로 합쳐서(merge) 출력한다. 최대 8개 파일을 합칠 수 있다.
   -w width : 라인의 폭을 width에 지정한 수로 설정한다. 기본값은 72이다.
(4) 사용예
   (가정) os2.txt
    linux
    windows
     php
     mysql
   1) [posein@www posein]$ pr -n os.txt


      2002-06-01 00:40                    os.txt                     Page    1


          1   linux
          2   windows
       => 페이지 단위로 출력됨을 알 수 있다.
   2) [posein@www posein]$ pr -d os.txt
       => 각 행 사이에 공백을 주어 출력됨을 알 수 있다.
   3) [posein@www posein]$ pr -n os.txt | lp
        => os.txt 파일의 각 라인에 번호를 붙여 프린터로 출력한다. 물론 이 경우에 프린터가 설치
          되어 있어야 한다.
   4) [posein@www posein]$ pr -3dh "pr test" os2.txt
      2002-06-01 01:01                    pr test                    Page    1


      linux                    php                     mysql

      windows

       => 기본 한 라인에 3열(즉, 한라인에 기존파일의 3라인을 처리)을 출력하고 파일의 헤더를
         'pr test'라고 지정한다.
   5) [posein@www posein]$ pr -l30 -w50 -n /etc/passwd
       => /etc/passwd 파일을 50컬럼 30라인을 한 페이지로 하여 각 라인에 번호를 붙여 출력한다.

11. split
(1) 설명 : 하나의 파일을 여러 개의 작은 파일로 분리하는 명령어로 옵션없이 실행하면, 기본값이
           1000라인 단위로 파일을 분리한다. 별도의 파일명을 지정하지 않으면 xaa, xab..등과
           같은 형태로 생성된다.
(2) 사용법
   spilt [option] 분리하고자_하는_파일명 [생성하고자하는_파일명]
(3) option
   -b 사이즈 : 파일을 주어진 바이트 크기로 분리한다.
   -c 사이즈 : 파일의 라인크기를 주어진 크기로 최대한 맞도록 분리한다.
   -l 라인 : 파일을 주어진 라인 수 단위로 분리한다.
   -넘버 : -l옵션을 사용한 것과 동일한 역할을 한다.
(4) 사용예
   1) [posein@www posein]$ split -l 30 /etc/passwd
        => /etc/passwd 파일을 한 파일에 30라인씩 잘라서 파일을 생성한다. 별도로 지정한 이름이
          없으므로 xaa, xab, xac ...등으로 생성된다.
   2) [posein@www posein]$ split -40 /etc/passwd pa
       => /etc/passwd파일을 한 파일에 40라인씩 잘라서 파일을 생성한다. pa라는 이름을 부여하였
         으므로 생성되는 파일은 paaa, paab..등으로 생성된다.

12. tac
(1) 설명 : 파일의 내용을 맨 아래줄부터 역순으로 출력하는 명령이다. 이름에서 보듯 cat명령의
           반대되는 개념이다.
(2) 사용법
   tac [option] 파일
(3) option
   -b : 분리자를 파일의 처음에 덧붙인다.(newline) 보통 공백라인이 삽입된다.
(4) 사용예
   [posein@www posein]$ tac os.txt
   windows
   linux
    => 기존의 파일의 내용을 역순으로 출력한다.

13. tr
(1) 설명 : 파일의 임의의 문자(열)를 원하는 문자로 바꾸는 명령이다. 프로그램 소스의 변수명이나
           데이터 타입을 바꿀 경우 유용하게 쓰인다. 이 명령은 꼭 < 를 이용하여 입력을 지정해야
           된다.
(2) 사용법
   tr [option] string1 string2 < 파일명
(3) option
   -d : 해당문자를 삭제한다.
   -s : 문자가 중복된 경우 하나만 남기고 모두 삭제한다.
(4) 사용예
   (가정) tr.txt 과 다음과 같다면
         I love linux
         I love windows
         I loove unix
   1) [posein@www posein]$ tr o i < tr.txt
      I live linux
      I live windiws
      I liive unix
       => tr.txt의 'o'를 'i'로 바꿔서 출력한다.
   2) [posein@www posein]$ tr -s 'o' < tr.txt
      I love linux
      I love windows
      I love unix
       => 'o'가 중복된 경우 'o'를 하나만 출력한다.
   3) [posein@www posein]$ tr '[a-z]' '[A-Z]'< tr.txt
      I LOVE LINUX
      I LOVE WINDOWS
      I LOOVE UNIX
       => 소문자를 전부 대문자로 바꿔 출력한다.
   4) [posein@www posein]$ tr '[a-z]' '[A-Z]' < tr.txt > tr2.txt
      [posein@www posein]$ cat tr2.txt
      I LOVE LINUX
      I LOVE WINDOWS
      I LOOVE UNIX
        => tr.txt를 입력받아 대문자로 전환한뒤에 tr2.txt파일에 저장한다.
   5) [posein@www posein]$ tr -d 'o' < tr.txt
      I lve linux
      I lve windws
      I lve unix

(참고) tr명령을 이용하여 대소문자전환하는법
  1. tr abcdefghijklmnopqstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ
  2. tr '[a-z]' '[A-Z]'
  3. tr '[:lower:]' '[:upper:]'

14. join
(1) 설명: paste 명령과 비슷한 명령으로 두 개의 정렬된 파일을 하나로 수평 병합해주는 명령이다.
          이 명령은 정확히 두 파일에 대해서 동작하지만 두 파일사이에 공통으로 표시된 필드(보통
          숫자 라벨)가 있는 줄에 대해서만 합쳐서 결과를 표준출력으로 출력해준다. 정확히 동작
          하려면 두 파일 모두 표시 필드가 있어야 한다.
(2) 사용법
   join [options] file1 file2
(3) 사용예
   [posein@www posein]$ cat a.txt
   1 designer
   2 programmer
   3 engineer
   [posein@www posein]$ cat b.txt
   1 Miss Kim
   2 Mr.Lee
   3 Mr.Jung
   [posein@www posein]$ join a.txt b.txt
   1 designer Miss Kim
   2 programmer Mr.Lee
   3 engineer Mr.Jung

15. diff
(1) 설명: 두 개의 파일을 비교한다. 이 명령은 두 개의 파일이 어떻게 다른가 표시해준다. 그래서
          어떻게 수정되어야 두 파일이 같아지는 지를 보여준다. 결과는 기준이 되는 파일이 두번째
          파일이다. 그래서 모든 정보는 '첫번째 파일이 어떻게 수정되어야 두번째 파일과 같아지느
          냐'하는 식이다.
(2) 사용법
   diff [option] 파일1 파일2
(3) option
   -i : 대소문자를 구분하지 않는다.
   -b : 하나 이상의 공백문자는 모두 같은 것으로 취급해서 비교한다.
(4) 결과
    a : append의 약자로 파일2에서 파일1으로 첨가되어야 할 것이 이 값으로 표시된다.
    d : delete의 약자로 파일1에서 제거되어야 하는 내용은 이 값으로 표시된다.
    c : change의 약자로 파일의 내용이 바뀌어야 하는 내용이 이 값으로 표시된다.
(5) 사용예
   1) [posein@www posein]$ cat aa.txt
      I love linux.
      I love windows.
      [posein@www posein]$ cat bb.txt
      I love linux.
      I love windows.
      I love unix.
      [posein@www posein]$ diff aa.txt bb.txt
      2a3
      > I love unix.
        => (설명) 파일2에서 3번째줄을 파일1에 추가하면 같아진다.
   2) [posein@www posein]$ diff bb.txt aa.txt
      3d2
      < I love unix.
       => 파일1에서 3번째줄을 제거해야 파일2와 같아진다.
   3) [posein@www posein]$ cat aa.txt
      I love linux.
      I love windows.
      [posein@www posein]$ cat bb.txt
      I love linux.
      I love window.
      [posein@www posein]$ diff aa.txt bb.txt
      2c2
      < I love windows.
      ---
      > I love window.
        => 파일1의 내용이 바뀌어야 파일2와 같아진다.

16. uniq
(1) 설명: 중복되어 있는 라인을 제거하고 한라인으로 출력한다. 보통 sort명령과 함께 쓰이면서
          중복되어 있는 것을 제거하고 출력할 때 많이 쓰인다. (참고로 sort명령에 -u 옵션과 같
          다.)
(2) 사용법
   uniq [options] 파일1 [파일2]
    => 파일1의 중복되어 있는 줄을 제거한다. 파일2를 지정하면 제거한 내용을 화면에 출력하지
     않고 '파일2'라는 이름으로 저장한다.
(3) option
   -u : 실제적으로 중복되는 줄을 제거하고 출력한다.
   -c : 줄의 수를 계산하여 보여준다.
   -d : 라인이 반복되었을 때 그 반복된 라인 한 줄을 출력해준다.
(4) 사용예
   1) [posein@www posein]$ cat list.txt
      linux
      windows
      linux
      linux
      [posein@www posein]$ uniq list.txt
      linux
      windows
      linux
       => 중복되는 줄인 linux라는 것을 한줄 제거하고 출력한다.
   2) [posein@www posein]$ uniq list.txt list2.txt
      [posein@www posein]$ cat list2.txt
      linux
      windows
      linux
       => list.txt의 중복되는 줄을 제거하고 그 값을 list2.txt라는 파일에 저장한다.
   3) [posein@www posein]$ uniq -u list.txt
      linux
      windows
       => linux라는 줄이 3줄이었는데 실제적으로 제거하고 1줄만 출력한다.
   4) [posein@www posein]$ uniq -c list.txt
            1 linux
            1 windows
            2 linux
   5) [posein@www posein]$ uniq -d list.txt
      linux
       => 'linux'라는 문자열만 반복되었으므로 linux라는 값만 나온다.
   6) [posein@www posein]$ cut -d: -f7 /etc/passwd | sort | uniq

      /bin/bash
      /bin/false
      /bin/sync
      /dev/null
      /sbin/halt
      /sbin/nologin
      /sbin/shutdown

17. aspell
(1) 설명: 텍스트파일의 철자(Spelling)을 검사해주는 명령어이다.
(2) 사용법
   aspell option 텍스트파일
(3) option
   -c : 텍스트파일의 철자를 검사하는 옵션이다. -c 대신에 check 라고 써도 된다.
   -l : 잘못된 철자를 표준입력으로 부터 등록한다.
(4) 사용예
   [가정] a.txt 라는 파일의 내용이 다음과 같다고 하자.
     [posein@www posein]$ cat a.txt
     I lovi linux
     I love windows

   1) [posein@www posein]$ aspell -c a.txt
      I lovi linux
      I love windows

      1)                                                6) loci
      2) love                                           7) Levi
      3) lvi                                            8) Love
      4) lo vi                                          9) Loki
      5) lo-vi                                          0) Loni
      i) Ignore                                         I) Ignore all
      r) Replace                                        R) Replace all
      a) Add                                            x) Exit
       => 원하는 키를 선택하면 된다. 만약 love라는 단어로 변경하려면 [2]키를 누른다.
   2) [posein@www posein]$ aspell -l < new.txt
      CarWash
      FirstOne
       => new.txt로부터 단어를 읽어들여 잘못된 철자로 등록시킨다.

18. look
(1) 설명: 특정한 문자열을 지정하면 해당 문자열로 시작하는 단어를 /usr/share/dict/words에서
          찾아준다.
(2) 사용법
   look 문자열
(3) 사용예
   [posein@www posein]$ look copy
   copy
   copying
   copyright
   copyrightable
   copyrighted
   copyrights
   copywriter

우주곰:지구곰이 아닙니다.
지구곰이 아닙니다.
Categories (190)
Information (5)
About uzoogom (5)
My Advanced Linux (73)
Learning Linux (96)
OperatingSystem (5)
Databases (4)
Tips! (1)
OpenSource (1)
«   2018/10   »
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      
  1. 2012/12 (2)
  2. 2012/04 (3)
  3. 2012/03 (6)
  4. 2012/02 (6)
  5. 2012/01 (2)