📌 grep
global regular expression print 의 약자로,
정규표현식을 사용하여 파일 혹은 명령어결과 내 특정/어떤 내용을 찾기 위해서 쓰이는 명령어다.
파일 혹은 명령어결과 내 지정한 정규표현식 패턴과 일치한 라인/결과를 출력 한다.
사용법: grep [옵션]... 패턴 [파일]...
✅ 대표적인 옵션 몇가지만 예시로 아래표로 정리해보았다.
더 많은 옵션들은 man grep 명령어를 사용해서 확인 할 수 있다.
옵션 | 설명 | 사용 예시 |
-i | --ignore-case 대소문자를 구별하지 않는다. |
grep -i 'hello' grep.txt |
-n | --line-number 행번호를 붙여서 출력한다. |
grep -n 'hello' grep.txt |
-v | --invert-match 패턴으로 매칭되지 않는 라인을 출력한다. |
grep -v '^hello' grep.txt |
-w | --word-regexp 단어(문자열)가 일치하는 라인을 출력 한다. |
grep -w 'hello' grep.txt |
예시를 위해 만든 grep.txt 라는 파일 이다.
테스트를 위해 총 12 line을 가진 임의의 내용으로 작성 했다.
✅ 옵션 : -i (대소문자 구별X)
리눅스는 기본적으로 대소문자를 구별하기 때문에
'hello' 는 -i 옵션 유무에 따라 'hello', 'Hello' 를 포함하는 라인의 출력 결과가 다른걸 확인 할 수 있다.
✅ 옵션 : -n (행번호 출력O)
출력결과에 파일의 행번호를 함께 출력한다.
예시처럼 옵션을 여러개 줄 수도 있다.
✅ 옵션 : -v (패턴일치X)
'^[0-9]' 의 의미는 '행의 시작 지시자가 숫자로 시작하는' 정규식 정도로 풀이 할 수 있겠다.
따라서 '행의 시작 지시자가 숫자로 시작하지 않는 패턴을 출력하되, 행번호도 함께 출력하라' 는 의미이다.
패턴이 일치하는걸 찾으려면 -v를 안쓰면 된다.
(너무당연해서 쓰지말까 하다 혹시몰라서....) 👀👀
✅ 옵션 : -w 단어(문자열) 일치
전체를 구성하는 단어가 일치하는 행만 출력한다.
여기서 단어는 한 라인에 공백을 기준으로 구분된 완전히 일치하는 단어를 뜻한다.
상기의 사유로 'linux' 단어를 포함하는 행을 출력하고 싶을때,
'linux study' 와 'linux_study' 는 -w 옵션으로는 정규식을 사용해도 출력되지 않는다.
만약 'linux'를 포함한 모든 라인을 출력하기 원할때는
예시처럼 'linux*' 정규식 메타문자를 사용한다.
✅ grep 활용 (여러개 출력)
grep [패턴1] | grep [패턴2] grep.txt
| (pipe line) 문자열을 활용해서 여러개의 grep 결과를 합칠수있다.
1 | 2 형식은 1명령어의 실행결과를 2로 넘겨받아서 명령어를 실행한다.
1️⃣ 'h','H' 대소문자 구별 없이 'w' 문자열이 있는 행번호 출력하기
2️⃣ txt 확장자 파일을 읽고 he,ho로 시작하고 d로 끝나는 라인을 행번호와 출력하기
'Programming > Linux' 카테고리의 다른 글
[Ubuntu] nvm사용/설치, node.js 버전 확인/업그레이드 (0) | 2023.05.31 |
---|---|
[Ubuntu] yarn 설치 및 버전 확인 (0) | 2023.05.30 |
[Linux] umask 기본접근권한 설정 및 진리표 (0) | 2022.10.23 |
[Linux] 파일/디렉토리 접근권한 제어 (chmod) (0) | 2022.10.02 |
[Linux] 하드링크, 심볼릭링크의 차이와 inode의 관계 (1) | 2022.09.21 |