Linux

[Linux 기초] cat, awk, sort, uniq

  • -
728x90

cat

catenate 혹은 concatenate의 약어. 파일을 터미널 화면에 표시해주는 명령어

$ cat [옵션] [파일명]

옵션

옵션 설명

-b

 줄번호를 화면 왼쪽에 나타낸다. 비어있는 행은 제외한다.

-e 

제어 문자를 ^ 형태로 출력하면서 각 행의 끝에 $를 추가한다.

-n 

줄번호를 화면 왼쪽에 나타낸다. 비어있는 행도 포함한다.

-s

연속되는 2개이상의 빈 행을 한행으로 출력한다.

-v

tab과 행 바꿈 문자를 제외한 제어 문자를 ^ 형태로 출력한다.

-E

행마다 끝에 $ 문자를 출력한다.

-T

탭(tab) 문자를 출력한다.

-A

-vET 옵션을 사용한 것과 같은 효과를 본다.

 

awk

대부분의 리눅스 명령어와는 다르게 awk는 특정 단어의 약어가 아니다. awk는 최초에 awk 기능을 디자인한 사람들의 이니셜을 조합하여 만든 이름이기 때문이다. Aho + Weinberger + Kernighan. (A:Alfred V. Aho, W:Peter J. Weinberger, K:Brian W. Kernighan)

 

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

 

$ awk 'pattern' filename 조건
$ awk '{action}' filename 몇 번째 필드
$ awk 'pattern {action}' filename 무슨 조건에 몇 번째 필드

# 1. (필드) 개행으로 구분한다 
# 2. 자료 처리 및 리포트 생성에 사용하는 프로그래밍 언어 
# 3. 입력 데이터로는 표준 입력, 여러 개의 파일 또는 다른 프로세스의 결과를 사용 할 수 있다 
# 4. 사용자가 지정한 패턴 검색이나 특별한 작업수행 위해 파일을 행 단위로 조사한다 
# 5. $0은 모든 필드

예시

공백을 기준으로 9번째를 출력한다.  

 

 

리눅스를 사용하며 가장 많이 사용된 명령어 3개를 출력한다.  

 

sort

사용자가 지정한 파일의 내용을 정력하거나, 정렬된 파일의 내용을 병합할 수 있다.  

$ sort [-옵션] [-o 저장될 파일명] 정렬할 파일명 [-m 병합할 파일명]

 

옵션

옵션 설명
-n 라인의 각 필드를 비교하는 대상을  숫자로 한정
-f 대소문자 구분안함
-r  출력 순서를 역순으로
-b 앞에 붙는 공백 무시
-t 필드 구분자 지정
-m 정렬된 파일 병합
-u 정렬 후 중복행 제거
-o 저장할 파일명 명시, 생략 시 화면에 출력

 

uniq

중복된  내용의 행이 연속으로 있으면 하나만 남기고 삭제한다.

전체적으로 분산된 중복은 찾아내지 못한다. 따라서 순차적으로 정렬한 후 적용한다.(sort와 같이쓰기 좋음)

 

옵션

옵션 설명
-c 같은 라인이 몇번 나오는지 표시
-d 중복되어 나오는 라인 중 한 라인만 표시
-i 중복 라인을 한 라인으로  생각하고 출력
-u 중복되지 않은 행만 출력
-w N번째  문자까지만 비교대상으로 하여 uniq 수행
-s N번째 문자까지는 비교대상에서 제외
-f N번째 필드를 비교대상에서 제외
참고 :
http://www.incodom.kr/Linux/%EA%B8%B0%EB%B3%B8%EB%AA%85%EB%A0%B9%EC%96%B4/cat
https://websecurity.tistory.com/80

 

 

728x90
300x250
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.