ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 텍스트 처리 필터
    Technique/LPIC 2019. 5. 9. 15:02
    반응형

    Lunix에서는 텍스트 데이터를 가공하기 위해 필터기 되는 커맨드가 다수 있다. 각각의 커맨드는 특별한 기능을 가지고 있지만 쉘 상에서는 각각을 조합하는 것으로 인해 강력한 데이터 처리가 가능하다.

    Linux/UNIX 시스템에서의 [필터]는 파일이나 텍스트 데이터를 읽어 들여 무언가의 처리를 하여 출력하는 프로그램을 일컫는다.

    cat 커맨드

    파일의 내용을 표시한다. 정확히는 파일의 내용을 표준 출력으로 출력한다. 그러기 위해서 쉘의 리다이렉트를 사용하여 복수의 파일을 조합하여 사용하기도 한다.

    옵션 설명
    -n 각 행의 좌측에 행 번호를 붙인다

    nl 커맨드

    텍스트 파일의 여러 위치에 행 번호를 붙이는 것이 가능하다. 헤더, 본문,footer  부분에 나눠서 행 번호를 부여하는 것도 가능하다.

    옵션 설명
    -b 형식 지정한 형식으로 본문에 행번호를 추가한다
    -h 형식 지정한 형식으로 헤더에 행 번호를 추가한다
    -f 형식 지정한 형식으로 footer에 행번호를 추가한다
    형식 설명
    모든 행
    t 공백 이외의 행
    n 행 번호의 추가를 중지

    od 커맨드

    바이너리 파일의 내용을 8진수나 16진수로 표시한다 옵션을 저 정하지 않는 경우 8진수로 표시한다.

    옵션 설명
    -t 출력 타입 출력할 포맷을 지정한다
    출력 타입 설명
    c ASCII 문자
    o 8진수 ( 기본 )
    x 16진수

    head 커맨드

    파일의 선두 부분을 표시한다. 옵션을 지정하지 않은 경우 선두로 부터 10행까지 표시한다.

    옵션 설명
    -n, - 행수 선두로 부터 지정된 행만큼 표시한다
    -c 바이트 수 출력할 바이트 수를 지정한다

    tail 커맨드

    파일의 어미 부분을 표시한다. 기본치로는 최종형으로부터 10행이 표시된다. -f 옵션을 사용하면 파일의 어미를 계속하여 표시하고 파일의 어미에 행이 추가될 경우 리얼타임으로 표시 가능하다. 로그파일을 리얼타임으로 감시할 경우 등에서 사용한다.

    -f를  
       
       
       

    이용하여 계속해서 표시할 경우 Ctrl + c 키를 사용하여 감시를 그만둘 수 있다

    cut 커맨드

    파일의 각 행으로부터 지정한 필드를 잘라낸다. -c 옵션을 사용할 경우 몇 번째 문자부터 잘라낼지 정할 수 있다.

    옵션 설명
    -c 문자수 잘라낼 문자 위치를 지정한다
    -d 구별문자 필드의 구별 문자 ( 데리미터 )를 지정한다. ( 기본은 tab )
    -f 필드 잘라낼 필드를 지정한다.

    필드와 필드 간을 구별하는 문자는 [ : ]이거나 [ , ]이거나 다양하다 필드 간을 나누는 문자를 데리 미터라고 한다 -d 옵션을 사용하여 어느 문자를 데리 미터로 인식할지 지정 가능하다. 생략할 경우 tab 문자가 데리 미터가 된다 또한 -f 옵션을 사용할 경우 몇 번째 필드를 잘라낼지 지정 가능하다.

     

    join 커맨드​

    2개의 파일을 읽어들여 공통의 필드를 가진 행을 연결한다.

    옵션 설명
    -j 필드 연결할 필드를 지정한다

    paste 커맨드

    1개 이상의 파일을 읽어들여 형별로 수평방향으로 연결한다. 연결할 경우의 구별 문자는 기본적으론 tab 문자가 된다.

    옵션 설명
    -d 구분문자 구분 문자를 지정한다 ( 기본값은 tab )

    tr 커맨드

    표준 입력으로 읽어들인 문자열을 교환하거나 삭제한다.

    옵션 설명
    -d  문자열 1에 매치된 문자열을 삭제한다.
    -s  연속한 패턴의 문자열을 1문자로 처리한다.
    클래스 설명
    [:alpha:] 알파벳
    [:lower:] 영 소문자
    [:upper:] 영 대문자
    [:digit:] 숫자
    [:alnum:] 영 숫자
    [:space:] 스페이스

    문자열의 지정에는 클래스가 사용된다.

    sort 커맨드

    행 단위의 파일의 내용을 정렬한다. 기본적으로는 오름차순으로 정렬한다.

    옵션 설명
    -b 행의 시작 부분의 공백을 무시한다.
    -f 대문자 소문자 구분을 무시한다.
    -r 내림차순으로 정렬한다.
    -n 숫자를 문자가 아니라 수치로 처리한다.

    split 커맨드

    지정된 사이즈로 파일을 나눈다. 기본 치는 1000 행마다 복수 파일로 나눈다 나눠진 파일에는 파일명의 뒤에 [aa] [ab] [ac]... 가 추가된다.

    옵션 설명
    - 행수 입력 파일을 지정된 행마다 나눈다.

    uniq 커맨드

    입력된 텍스트 스트림 중에 중복된 행을 조사하여 중복된 행을 1행으로 정리하여 출력한다. 입력된 텍스트 스트림을 정렬할 필요가 있기 때문에 대다수의 경우 sort 커맨드와 파이프로 조합하여 사용한다.

    옵션 설명
    -d  중복한 행만 출력한다.
    -u 중복되지 않은 행만 출력한다.

    pr 커맨드

    파일의 서식을 바꾼다. 인쇄하기 전에 자주 사용된다. 파일명에 -를 지정하면 표준 출력으로 읽어 올 수 있다.

    옵션 설명
    + 전개 페이지 [ : 종료 페이지 ] 전개 페이지나 종료 페이지를 지정한다.
    -h 헤드 문자열 헤더에 표시된 파일 명을 지정한 문자로 교체한다.
    -l 페이지 길이 헤더와 footer를 포함한 페이지의 길이를 행수에 지정한다( 기본은 66행 )

    fmt 커맨드

    텍스트를 지정한 만큼 변형한다.

    옵션 설명
    -w 문자 폭 1행의 문자 폭을 설정한다.

    expand 커맨드

    텍스트 파일의 내부에 있는 tab을 space로 변환한다.

    옵션 설명
    -i 행의 시작 부분의 tab 만 변환
    -t 탭 폭 tab의 폭을 지정한다 ( 기본 값은 8 )

    unexpand 커맨드

    행의 시작 부분에 연속된 공백을 tab으로 변환한다.

    옵션 설명
    -a  행 시작 부분의 공백도 변환한다.
    -t 탭 폭 탭의 폭을 지정한다 ( 기본은 8 )

    wc 커맨드

    파일의 행수 문자 수, 단어 수를 표시한다. 옵션을 생략할 경우, 행수, 단어 수, 문자 수 를 표시한다.

    옵션 설명
    -c  문자 수 ( 바이트 수 ) 를 표시한다.
    -l 행수를 표시한다.
    -w  단어 수를 표시한다.

    xargs 커맨드

    표준 입력으로부터 받아들인 문자열을 인수로 지정하고, 주어진 커맨드로부터 실행한다.

    xargs 커맨드의 이점은 인수의 수가 너무 많을 경우에도 처리 가능하다는 것이다. 이상적으로 많은 수의 파일이 있는 디렉터리에 rm 커맨드를 실행할 경우 쉘의 제한을 넘어갈 경우도 있으나 xargs 커맨드를 사용하면 처리 가능하다.

    반응형

    'Technique > LPIC' 카테고리의 다른 글

    vi 에디터  (0) 2019.05.14
    정규 표현을 사용한 텍스트 검색  (0) 2019.05.09
    파이프와 리다이렉트  (0) 2019.05.08
    meta 문자 이용  (0) 2019.05.08
    파일 조작 커맨드  (0) 2019.05.08

    댓글

Designed by Tistory.