2023년 9월 23일 토요일

리눅스 문자 처리 명령어

리눅스 문자 처리 명령어

문자 처리 명령어


명령 의미 기능
awk pattern scanning and processing language(Aho, Weinberger, Kernighan) 패턴의 연산과 조작
cut remove sections from each line of files 형태를 파일에서 추출
paste merge the line of files 파일을 합성
diff find differences between two files 두 파일의 차이점 검색
grep print lines matching a pattern (global regular expression parser) 형태를 파일에서 탐색
spell report spelling error 철자 오류 검색
wc print the number of bytes, words, lines 글자, 단어, 줄 수 출력
sed stream editor 비 대화식 텍스트 편집기
pico simple text editor in the pine composer Pine 메일 도구의 편집기
vi visual editor 화면 편집기
sort sort lines of text files 줄 단위의 정렬
split split a file into pieces 큰 파일을 나눈다
tr translate or delete characters 파일의 문자들 변환
pr convert text files for printing 페이지를 매져서 출력


awk 명령의 사용 예

awk는 세 명의 저자 이름(Aho + Weinberger + Kernighan)을 딴것으로 데이터 프로세싱, 리포트 작성, 간단한 데이 베이스 수행들에 유용합니다.

awk는 파일로부터 레코드(record)를 선택하고, 선택된 레코드에 포함된 값을 조작하거나 데이터화하는 것을 목적으로 사용하는 프로그램입니다. 즉, awk 명령의 입력으로 지정된 파일로부터 데이터를 분류한 다음, 분류된 텍스트 데이터를 바탕으로 패턴 매칭 여부를 검사하거나 데이터 조작 및 연산 등의 액션을 수행하고, 그 결과를 출력하는 기능을 수행합니다.

awk [OPTION...] [pattern {action} ...] [ARGUMENT...]

pattern과 action은 모두 생략이 가능한데, pattern을 생략하는 경우는 "모든 레코드"가 적용되고, action을 생략하면 "print"가 적용됩니다. 즉, 아래와 같이 pattern이 생략되는 경우, 매칭 여부를 검사할 문자열 패턴 정보가 없기 때문에 모든 레코드가 선택되고, action을 생략하면, 기본 액션인 print가 실행되는 것입니다.

# pattern 생략.
$ awk '{ print }' ./file.txt      # file.txt의 모든 레코드 출력.

# action 생략.
$ awk '/p/' ./file.txt            # file.txt에서 p를 포함하는 레코드 출력.


cut 명령의 사용 예

cut 명령어는 특정 파일의 열을 출력하여 제거하거나 원하는 열만 출력할 수 있는 명령어 입니다 이 명령어는 텍스트 문서의 특정 필드를 제거, 편집을 통해 원하는 내용으로 출력이 가능합니다 또한, awk의 명령어를 사용하여 디테일하게 텍스트 파일의 출력 편집용으로 사용되기도 합니다.

cut [옵션] [파일이름]

cut 명령어 옵션

  • -b 지정된 바이트(byte)를 출력하는 옵션 입니다.
  • -c 지정된 문자를 출력하는 옵션 입니다.
  • -d 필드 구분자를 설정하는 옵션 입니다.
  • -f 지정된 필드를 출력하는 옵션 입니다.
  • -s 필드 구분자를 포함하지 않는 행을 출력하는 옵션 입니다.
  • # 사용법 : cut -b[필드번호] [파일이름]
    $ cut -b3 /etc/passwd		# 3번째 라인 출력
    
    # 사용법 : cut -b[시작 열 번호]-[종료 열 번호] [파일이름]
    $ cut -b5-10 /etc/passwd	# [5]번째 ~ [10]번째 라인 출력.
    
    # 사용법 : cut -d [구분자] -f [필드번호],[필드번호] [파일이름]
    $ cut -d : -f 1,2,3 /etc/passwd	# 구분자를 이용하여 [1]번째, [2]번째, [3]번째 라인 출력
    /etc/passwd 파일의 :(콜론)으로 구분하여 1번,2번,3번째의 출력하는 부분이며, 필드드 번호는 ,(컴마)로 구분해야 됩니다.


    paste 명령의 사용 예

    paste는 파일의 줄을 수평으로 병합할 수 있는 명령입니다. 인수로 지정된 각 파일의 순차적으로 해당하는 행으로 구성된 행을 탭으로 구분하여 출력합니다.

    paste [OPTION].. [FILE]...

    # file1
    
    Iron Man
    Thor
    Captain America
    Hulk
    Spider Man

    # file2
    
    Black Widow
    Captain Marvel
    Dark Phoenix
    Nebula

    $ paste file1 file2
    
    Iron Man	Black Widow
    Thor	Captain Marvel
    Captain America	Dark Phoenix
    Hulk	Nebula
    Spider Man

    # 출력을 화면에 표시하는 대신 >, > 연산자를 사용하여 파일로 리디렉션할 수 있습니다.
    $ paste file1 file2 > file3


    diff 명령의 사용 예

    diff명령어는 differences의 약자로 두 파일 사이의 내용을 비교하는 명령어입니다. cmp 명령어 보다는 diff 명령어가 보다 직관적이고 명확하게 결과를 알려 줍니다.

    $ diff [옵션][비교파일1][비교파일2]
    
    # diff3 명령어는 3개의 파일 까지 비교 가능 합니다.
    
    $ diff3 [옵션][비교파일1][비교파일2][비교파일3]

    # pattern 생략.
    $ awk '{ print }' ./file.txt      # file.txt의 모든 레코드 출력.
    
    # action 생략.
    $ awk '/p/' ./file.txt            # file.txt에서 p를 포함하는 레코드 출력.


    grep 명령의 사용 예

    grep 명령은 파일 중에 특정한 문자가 있는 줄을 찾아 주는 명령입니다.

    $ grep sophomore /etc/passwd	# /etc/passwd에서 'sophomore' 검색
    $ grep 홍길동 students		# /etc/passwd에서 '홍길동' 검색


    spell 명령의 사용 예

    spell 명령은 자신이 작성한 문서의 내용에 오자가 없는지를 검사하는 프로그램입니다.

    $ spell [OPTIONS][FILE]
    $ spell text.txt



    wc 명령의 사용 예

    wc 명령은 파일에 저장된 내용의 줄, 단어, 문자수를 출력하는 명령입니다. -l, -w, -c 와 같이 3개의 옵션으로 구성된다. 이는 한 번에 출력되는 출력 결과를 line, word, character 단위로 출려하고 하는 경우에 사용합니다.

    $ wc students		# students라는 파일의 줄, 단어, 문자수 출력
    3	9	73 students	# students는 3줄, 9개 단어, 73개 문자로 구성
    
    $ wc -l students	# students 파일의 줄 수 출력
    3
    
    $ wc -w students	# students 파일의 단어 수 출력
    9
    
    $ wc -c students	# students 파일의 문자 수 출력
    73



    tr 명령의 사용 예

    tr 명령은 파일의 일부의 내용을 수정하는 명령입니다.

    $ tr "[a-z]" "[A-Z]" < dictionary	# 소->대문자 변환 후 출력
    $ tr "[a-z]" "[A-Z]" < dictionary > dict-upper	# 문자 변환 후 파일 생성



    pr 명령의 사용 예

    pr 명령은 문자 파일을 출력을 위한 형식으로 변환하는 명령입니다. 페이지의 앞부분 과 뒷부분에 적절한 간격과 페이지 번호, 파일명, 날짜, 시간 등을 포함한다.

    $ pr dictionary | more