【Linux】grep 명령의 기본 조작

PC를 움직이는 OS에는 여러가지가 있습니다만, 그 중의 하나가 Linux입니다. Mac과 같은 UNIX 계열의 OS입니다.
grep 명령이란?
그런 리눅스에서 이용할 수 있는 커멘드의 하나에 「grep」라고 하는 것이 있습니다.
파일의 문자열에 대해 정규식을 사용하여 검색하고 표시하는 Linux 명령
리눅스 grep은 파일에있는 문자열에 대해정규식을 사용하여 검색하고 결과를 표시하는 데 사용하는 명령입니다. Linux와 마찬가지로 UNIX 계열의 OS인 Mac에서도 grep 명령을 이용할 수 있습니다.
파일로부터 특정의 「문자열(문자의 패턴)」이 존재하는지를 조사하고 싶을 때에 이용된다
Linux의 grep 명령이 어떤 경우에 사용되는지 말하면,파일에 특정 문자열 (문자 패턴이라고 함)이 있는지 검색원할 때 사용됩니다.
grep 명령으로 조건 지정만 하면, LinuxOS가 들어간 PC내에 있는 복수 파일에 건너는 grep 검색도 가능합니다. 여러 조건을 지정할 수도 있습니다.
흐름을 간단히 설명하면 특정 파일 안에 “테스트”라는 문자를 포함하는 것이 존재하는지,라는 점을 명령으로 검색하고 그것이 있으면 결과로 표시하는 형태로 grep 검색이 이루어집니다. 됩니다.
grep 명령 사용법
그런 grep 명령은, 편리한 것으로부터 Linux 유저로 이용하고 있는 사람도 적지 않습니다. 여기에서는 Linux에서 grep 명령의 사용법을 소개합니다.
단일 파일에서 “문자열”을 찾는 방법
단일 파일에서 특정 문자열 검색원하는 경우 Linux grep에서는 다음과 같은 명령을 사용합니다. 아래의 grep 명령 예제의 경우 “sample.css”라는 파일에서 “테스트”가 포함된 문자열을 grep 명령으로 검색하는 조건이 지정됩니다.
$ grep 테스트 sample.css |
여러 파일에서 “문자열”을 찾는 방법

여러 파일에서 특정 문자열 검색그렇다면 검색하려는 파일 이름을 공백을 열어 지정합니다. 아래의 grep 명령 예제에서는 “샘플 .css”와 “Sample.css” 파일 중에서 “test”를 포함하는 문자열을 검색하는 조건이 지정됩니다.
$ grep “test” 샘플.css Sample.css |
and/또한 검색하는 방법
and Linux에서 grep 명령을 사용하여 검색 (또한 검색)을 검색하려면파이프(|)를 이용하여 grep을 연결수 있습니다. 아래의 grep 명령의 경우, “테스트”를 포함하고 “test”를 포함한 문자열을 “샘플 .css”에서 검색하는 조건입니다.
$ grep 테스트 샘플.css | grep test |
1 문장으로 “또한 검색”을하고 싶다면“.*”로 구분아래와 같이 검색합니다. 아래의 grep 커맨드의 경우는 1문안에 「테스트」를 포함하고 또한 「test」를 포함한 캐릭터 라인을 검색한다고 하는 조건입니다. 결과는 위의 |를 이용한 ‘게다가 검색’의 경우와 같습니다.
$ grep 테스트.*test 샘플.css |
grep 명령의 주요 옵션
그런데, Linux에서 grep 커멘드를 이용하는데 있어서, 「옵션」이라고 하는 것을 이용해 한층 더 다양한 검색을 할 수 있습니다. grep에서 자주 이용되는 옵션은 복수 존재하므로, 그 중에서도 Linux에서 grep 검색을 이용할 때 주였던 것을 소개합니다.
일치하지 않는 항목 찾기
Linux의 grep에서 입력하는 조건과 일치하지 않는 (특정 문자열을 포함하지 않는) 것을 검색하는 경우 사용하는 옵션은“-v”입니다. 아래 grep 명령의 경우 샘플 .css 파일에서 sa를 포함하지 않는 행을 검색합니다.
$ grep -v sa 샘플.css |
대문자/소문자를 구별하지 않고 검색

영문자에는 대문자 소문자가 있습니다만, 이 대문자 소문자를 구별해 세없이 검색하고 싶은 경우도 적지 않습니다.대소문자를 구별하지 않고 리눅스 grep 명령을 사용하고 싶다면“-i”옵션을 이용합니다.
아래의 grep 명령의 경우, 「inu」에 해당하는 것뿐만 아니라, 대문자 소문자의 배치가 다른 「Inu」나 「iNu」등도 검색됩니다. 대소문자 구분이 grep의 기본값입니다.
$ grep -i inu 샘플.css |
일치 처리에 지정된 정규식 사용
Linux의 grep에서 or / 또는 검색을하고 싶은 경우에 이용하는 것이“-e”명령입니다. or의 경우는 게다가 검색의 경우보다 조금 복잡합니다만, 그다지 어렵지는 않습니다.
grep의 옵션인 「-e」는 일치 처리에 지정한 정규 표현을 사용하는, 패턴 매칭을 조사하는 옵션으로, 이것을 사용해 or 검색하는 경우는 아래와 같이 활용합니다.
아래의 grep 명령의 조건이라면 「샘플 .css」의 파일 중 「sa」or 「te」를 포함한 캐릭터 라인이 있을지 어떨지를 검색하고 있습니다.
$ grep -e sa -e te 샘플.css |
grep에서 or 검색은“-E”옵션을 이용하는 방법도 있습니다. or로 검색하고 싶은 것은| (파이프) 사용다음과 같이 조건을 지정합니다.
|는 AND 검색의 경우와 다른 의미로 사용되며, 이것은 “or(또는)”를 나타냅니다. 조건은 위의 grep 명령과 동일합니다.
$ grep -E “sa|te” 샘플.css |
grep 명령 목록
그 외에도 Linux의 grep에는여러 명령과 옵션이 있습니다.이 때문에, 이용예도 포함해 일람이라고 하는 형태로 소개해 갑니다.
grep 명령 옵션 목록 | |||
---|---|---|---|
옵션 | grep의 옵션 내용 | grep 명령 사용 예 | |
-i | 대소문자 구분 없이 검색 | $ grep -i inu 샘플.css | |
-e | 일치 처리에 지정된 정규식을 이용하여 검색 | $ grep -e sa -e te 샘플.css | |
-E | 확장 정규식으로 검색 | $ grep -E “sa|te” 샘플.css | |
-v | 일치하지 않는 항목 찾기 | $ grep -v sa 샘플.css | |
-n | 검색결과에 행 번호 표시 | $ grep -n -B 3 -A 5 샘플.css | |
-A | 일치하는 문자열 뒤의 행 표시 (행 수를 숫자로 지정) |
$ grep -A 3 샘플.css (뒤의 3 행을 표시) |
|
-B | 일치하는 문자열 앞의 행 표시 (행 수를 숫자로 지정) |
$ grep -B 2 샘플.css (이전 두 줄 표시) |
|
-C | 일치하는 문자열 전후의 행 표시 (행 수를 숫자로 지정) |
$ grep -C 2 샘플.css (전후 2행 표시) |
|
-h | 검색 결과에 파일 이름을 표시하지 않음 | $ grep -h -i inu 샘플.css | |
-o | 검색결과와 일치하는 문자만 표시 | $ grep -o -i inu 샘플.css | |
-l ※소문자 L |
검색 결과에 파일 이름만 표시 | $ grep -l -i inu 샘플.css | |
-L | 검색 기준이 없는 파일 이름 표시 | $ grep -L -i inu 샘플.css | |
-b | 검색 기준이 몇 문자 안에 있는지 표시 | $ grep -b -i inu 샘플.css | |
-s | 오류 메시지 숨기기 | $ grep -s -B 3 -A 5 샘플.css |
마지막으로
Linux에서 사용할 수 있는 grep 명령은정규식에서 검색을 여러 조건을 지정하면서 파일에서 문자 검색할 수 있습니다.
and 검색이나 or 검색 이외에도 대문자 소문자의 구별 등을 할 수 있는 grep 명령의 옵션등도 있어, 여기서 소개한 grep 명령의 옵션 이외에도 여러가지가 있습니다.
여기서 설명은 하지는 않지만, 다양한 옵션을 조합하면서 임의의 문자열을 검색할 수 있도록 참고하면서 사용해 보세요.