본문 바로가기

Linux

리눅스 grep, find, awk, more

 

grep

 

grep은 입력으로 전달된 파일의 내용에서 특정 문자열을 찾고자할 때 사용하는 명령어

grep이 파일의 문자열을 검색할 때, 단순 문자열 매칭이 아니라, 정규 표현식(Regular Expression)에 의한 패턴 매칭(Pattern Matching) 방식을 사용

 

grep 명령에서 사용할 수 있는 옵션은 아래와 같다.

grep [OPTION...] PATTERN [FILE...]

-E : PATTERN을 확장 정규 표현식(Extended RegEx)으로 해석.

-F : PATTERN을 정규 표현식(RegEx)이 아닌 일반 문자열로 해석.

-G : PATTERN을 기본 정규 표현식(Basic RegEx)으로 해석.

-P : PATTERN을 Perl 정규 표현식(Perl RegEx)으로 해석.

-e : 매칭을 위한 PATTERN 전달.

-f : 파일에 기록된 내용을 PATTERN으로 사용.

-i : 대/소문자 무시.

-v : 매칭되는 PATTERN이 존재하지 않는 라인 선택.

-w : 단어(word) 단위로 매칭.

-x : 라인(line) 단위로 매칭.

-z : 라인을 newline(\n)이 아닌 NULL(\0)로 구분.

-m : 최대 검색 결과 갯수 제한.

-b : 패턴이 매치된 각 라인(-o 사용 시 문자열)의 바이트 옵셋 출력.

-n : 검색 결과 출력 라인 앞에 라인 번호 출력.

-H : 검색 결과 출력 라인 앞에 파일 이름 표시.

-h : 검색 결과 출력 시, 파일 이름 무시.

-o : 매치되는 문자열만 표시.

-q : 검색 결과 출력하지 않음.

-a : 바이너리 파일을 텍스트 파일처럼 처리.

-I : 바이너리 파일은 검사하지 않음.

-d : 디렉토리 처리 방식 지정. (read, recurse, skip)

-D : 장치 파일 처리 방식 지정. (read, skip)

-r : 하위 디렉토리 탐색.

-R : 심볼릭 링크를 따라가며 모든 하위 디렉토리 탐색.

-L : PATTERN이 존재하지 않는 파일 이름만 표시.

-l : 패턴이 존재하는 파일 이름만 표시.

-c : 파일 당 패턴이 일치하는 라인의 갯수 출력.

 

 

find

 

find는 리눅스에서 파일 및 디렉토리를 검색할 때 사용하는 명령

find [OPTION...] [PATH] [EXPRESSION...]

 

OPTION

-P : 심볼릭 링크를 따라가지 않고, 심볼릭 링크 자체 정보 사용.

-L : 심볼릭 링크에 연결된 파일 정보 사용.

-H : 심볼릭 링크를 따라가지 않으나, Command Line Argument를 처리할 땐 예외.

-D : 디버그 메시지 출력.

 

PATH

. : 현재 디렉토리

/ : 루트 디렉토리

디렉토리 이름 지정 : 대상 디렉토리에 있는 파일 및 디렉토리 리스트 표시

 

 

EXPRESSION

-name : 지정된 문자열 패턴에 해당하는 파일 검색.

-empty : 빈 디렉토리 또는 크기가 0인 파일 검색.

-delete : 검색된 파일 또는 디렉토리 삭제.

-exec : 검색된 파일에 대해 지정된 명령 실행.

-path : 지정된 문자열 패턴에 해당하는 경로에서 검색.

-print : 검색 결과를 출력. 검색 항목은 newline으로 구분. (기본 값)

-print0 : 검색 결과를 출력. 검색 항목은 null로 구분.

-size : 파일 크기를 사용하여 파일 검색.

-type : 지정된 파일 타입에 해당하는 파일 검색.

-mindepth : 검색을 시작할 하위 디렉토리 최소 깊이 지정.

-maxdepth : 검색할 하위 디렉토리의 최대 깊이 지정.

-atime : 파일 접근(access) 시각을 기준으로 파일 검색.

-ctime : 파일 내용 및 속성 변경(change) 시각을 기준으로 파일 검색.

-mtime : 파일의 데이터 수정(modify) 시각을 기준으로 파일 검색.

 

 

 

AWK

 

awk는 "awk programming language"라는 프로그래밍 언어로 작성된 프로그램을 실행합니다.

awk는 기본적으로 입력 데이터를 라인(line) 단위의 레코드(Record)로 인식합니다. 그리고 각 레코드에 들어 있는 텍스트는 공백 문자(space, tab)로 구분된 필드(Field)들로 분류되는데요. 이렇게 식별된 레코드 및 필드의 값들은 awk 프로그램에 의해 패턴 매칭 및 다양한 액션의 파라미터로 사용

 

awk [OPTION...] [awk program] [ARGUMENT...]

OPTION

-F : 필드 구분 문자 지정.

-f : awk program 파일 경로 지정.

-v : awk program에서 사용될 특정 variable값 지정.

 

awk program

-f 옵션이 사용되지 않은 경우, awk가 실행할 awk program 코드 지정.

 

ARGUMENT

입력 파일 지정 또는 variable 값 지정

 

 

 

more

 

리눅스에서 파일 내용을 확인하는 명령어이다. 파일을 읽어 화면에 화면 단위로 끊어서 출력한다. 이 명령어는 위에서 아래 방향으로만 출력된다.

 

왼쪽 하단에 화면에 출력된 내용이 전체의 몇 % 인지를 표시하며, Enter 키를 입력하면 한 줄씩 출력되고, Space bar를 입력하면 한 화면씩 출력된다.

 

-n 옵션을 사용할 경우, n에 입력한 값만큼 끊어서 화면에 출력해준다. Space bar를 입력하면 입력한 값 만큼씩 끊어서 화면에 출력된다.

+n 옵션을 사용할 경우, n에 입력한 행부터 화면에 출력해준다.

 

텍스트 모드 단축키

h : more 명령어 상태에서 사용할 수 있는 키 도움말 확인

q : more 명령어 종료

enter : 1행 아래로 이동

space bar, f : 아래로 1페이지 이동

b : 1페이지씩 앞으로 이동

= : 현재 위치의 행번호 표시

/문자열 : 지정한 문자열 검색

n:/문자열 : 지정한 문자열을 차례대로 검색

v : 현재 열려있는 파일의 현재 위치에서 vi 편집기 실행

 

확인하고자 하는 파일의 내용이 너무 길 경우 한 화면에 다 출력할 수 없으므로 파이프(|)를 이용해서 more 명령어를 사용한다.

$ ls -al | more

 

 

 

'Linux' 카테고리의 다른 글

리눅스 재지향과 파이프  (0) 2021.04.04
Linux 정보 확인 명령어 모음  (0) 2021.04.04