문자 처리 명령어
명령 | 의미 | 기능 |
---|---|---|
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 명령어 옵션
# 사용법 : 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