Skip to main content

Linux grep 명령의 사용 예

[스무디] 리눅스 프로세스와 관련 명령어 (유월 2026)

[스무디] 리눅스 프로세스와 관련 명령어 (유월 2026)
Anonim

Linux grep 명령은 입력을 필터링하는 방법으로 사용됩니다. GREP는 Global Regular Expression Printer의 약자이므로 효과적으로 사용하려면 정규식에 대한 지식이 있어야합니다.

이 기사에서는 grep 명령을 이해하는 데 도움이되는 몇 가지 예제를 학습합니다.

01 of 09

GREP를 사용하여 파일에서 문자열을 검색하는 방법

다음 어린이 책 제목이있는 책이라는 텍스트 파일이 있다고 가정 해보십시오.

  • 로빈 후드
  • 작은 빨간 승마 두건
  • 피터 팬
  • 금발의 미녀와 세 마리 곰들
  • 백설 공주와 일곱 난장이
  • 피노키오
  • 모자에있는 고양이
  • 3 마리의 작은 돼지
  • 그루프로
  • 찰리와 초콜릿 공장

제목에 "The"라는 단어가있는 모든 책을 찾으려면 다음 구문을 사용하십시오.

grep

다음 결과가 반환됩니다.

  • 금발의 미녀와 세 마리 곰들
  • 백설 공주와 일곱 난장이
  • 모자에있는 고양이
  • 3 마리의 작은 돼지
  • 그루프로
  • 찰리와 초콜릿 공장

각각의 경우에 "The"라는 단어가 강조 표시됩니다.

검색은 대소 문자를 구분하므로 제목 중 하나에 "The"대신 "the"가 있으면 검색 결과가 반환되지 않습니다.

대소 문자를 무시하려면 다음 스위치를 추가하면됩니다.

grep the books --ignore-case

다음과 같이 -i 스위치를 사용할 수도 있습니다.

grep -i the books

계속 읽기

02 of 09

와일드 카드를 사용하여 파일에서 문자열 검색

grep 명령은 매우 강력합니다. 다양한 패턴 일치 기술을 사용하여 결과를 필터링 할 수 있습니다.

이 예제에서는 와일드 카드를 사용하여 파일에서 문자열을 검색하는 방법을 보여줍니다.

다음 스코틀랜드 장소 이름을 가진 장소라는 파일이 있다고 상상해보십시오.

aberdeen수태어둡게하다뇌관반전뉴 버그새로운 사슴새로운 갤러웨이글래스고에든버러

이름에 인 버트가있는 모든 장소를 찾으려면 다음 구문을 사용하십시오.

grep inver * places

별표 (*) 와일드 카드는 0 또는 다수를 나타냅니다. 그러므로 인 버니 스 (Inverness)라고 불리는 곳이나 인 버니 스 (Inverness)라고 불리는 곳이 있다면 둘 다 반환됩니다.

사용할 수있는 또 다른 와일드 카드는 마침표 (.)입니다. 이 문자를 사용하여 하나의 문자와 일치시킬 수 있습니다.

grep inver.r 장소

위의 명령은 단일 기간으로 표시된 두 개의 r 사이에 와일드 카드가 하나만있을 수 있기 때문에 인 버리 리 (inverseurie) 및 반전 (inverary)이라고하는 장소를 찾지 만 무위 확자는 찾지 않습니다.

마침표 와일드 카드는 유용하지만 검색중인 텍스트의 일부로 문제가 발생할 수 있습니다.

예를 들어이 도메인 이름 목록보기

  • linux.about.com
  • pcsupport.about.com
  • mp3.about.com
  • minecraft.about.com
  • androidgames.about.com
  • netforbeginners.about.com
  • everydaylinuxuser.com
  • google.co.uk
  • google.au
  • direct.gov.uk

about .com을 모두 찾으려면 다음 구문을 사용하여 검색하면됩니다.

grep * about * domainnames

목록에 다음 이름이 포함되어 있으면 위의 명령이 실패합니다.

  • everydaylinuxuser.com/about.html

그러므로 다음 구문을 시도해 볼 수 있습니다.

grep * about.com 도메인 이름

다음 이름의 도메인이 없으면 정상적으로 작동합니다.

aboutycom.com

about.com이라는 용어를 찾으려면 다음과 같이 점을 이스케이프 처리해야합니다.

grep * .com 도메인 이름에 대해

마지막 와일드 카드는 0 또는 1 문자를 나타내는 물음표입니다.

예 :

grep? ber placenames

위 명령은 aberdeen, aberystwyth 또는 심지어 berwick을 반환합니다.

계속 읽기

03 of 09

grep을 사용하여 줄의 시작과 끝에서 문자열 검색

캐럿 (^) 및 달러 ($) 기호를 사용하면 행의 시작과 끝에서 패턴을 검색 할 수 있습니다.

다음 팀 이름을 가진 football이라는 파일이 있다고 상상해보십시오.

  • 블랙 풀
  • 리버풀
  • 맨체스터시
  • 레스터 시티
  • 맨체스터 유나이티드
  • 뉴캐슬 유나이티드
  • FC 맨체스터 유나이티드

맨체스터에서 시작한 모든 팀을 찾으려면 다음 구문을 사용하십시오.

grep ^ 맨체스터 팀

위의 명령은 맨체스터 시티와 맨체스터 유나이티드를 반환하지만 맨체스터 유나이티드는 반환하지 않습니다.

또는 다음 구문을 사용하여 United으로 끝나는 모든 팀을 찾을 수 있습니다.

grep United $ teams

위의 명령은 맨체스터 유나이티드와 뉴캐슬 유나이티드로 돌아갈 것이지만 맨체스터 유나이티드는 FC 유나이티드가 아닙니다.

04 of 09

grep을 사용하여 일치하는 항목 수 계산하기

grep을 사용하여 패턴과 일치하는 실제 라인을 반환하고 싶지는 않지만 몇 개가 있는지 알고 싶으면 다음 구문을 사용할 수 있습니다.

grep -c 패턴 입력 파일

패턴이 두 번 일치하면 숫자 2가 반환됩니다.

계속 읽기

09 년 5 월

grep을 사용하여 일치하지 않는 조건 모두 찾기

다음과 같이 나열된 국가의 지명 목록이 있다고 가정 해보십시오.

  • 스코틀랜드의 aberdeen
  • 글래스고 스코틀랜드
  • 리버풀 영국
  • 콜윈 베이
  • 런던, 영국

colwyn bay에는 관련 국가가 없습니다.

국가가있는 모든 장소를 검색하려면 다음 구문을 사용할 수 있습니다.

grep land $ places

결과는 콜윈 베이를 제외한 모든 장소에서 반환됩니다.

이것은 분명히 육지로 끝나는 곳에서만 효과가 있습니다 (거의 과학적이지는 않습니다).

다음 구문을 사용하여 선택 영역을 반대로 할 수 있습니다.

grep -v land $ places

이것은 땅으로 끝나지 않은 모든 장소를 발견 할 것입니다.

06 년 6 월

grep을 사용하는 파일에서 빈 줄을 찾는 방법

타사 응용 프로그램에서 사용하는 입력 파일이 있다고 가정하고 다음과 같이 빈 줄을 찾으면 파일 읽기를 중지합니다.

  • aberdeen 스코틀랜드
  • 인 버니 스 스코틀랜드
  • 리버풀 잉글랜드
  • 콜윈 베이 웨일즈

응용 프로그램이 liverpool 후 줄에 도착하면 colwyn bay가 완전히 누락되었다는 의미를 읽지 않게됩니다.

grep을 사용하여 다음 구문으로 빈 줄을 검색 할 수 있습니다.

grep ^ $ places

불행히도 이것은 빈 줄만 반환하기 때문에 특히 유용하지 않습니다.

물론 파일이 다음과 같이 유효한지 확인하기 위해 빈 줄 수를 계산할 수 있습니다.

grep -c ^ $ places

그러나 빈 줄이있는 줄 번호를 알고 있으면이를 대체 할 수 있으므로 더 유용 할 것입니다. 다음 명령을 사용하여이를 수행 할 수 있습니다.

grep -n ^ $ places

계속 읽기

07 09

grep을 사용하여 대문자 또는 소문자로 된 문자열을 검색하는 방법

grep을 사용하면 다음 구문을 사용하여 파일의 어떤 줄이 대문자인지 결정할 수 있습니다.

grep 'A-Z'파일 이름

대괄호 는 문자의 범위를 결정하게합니다. 위의 예에서 A와 Z 사이에있는 모든 문자를 찾습니다.

따라서 소문자와 일치 시키려면 다음 구문을 사용할 수 있습니다.

grep 'a-z'파일 이름

숫자 나 다른 기호가 아닌 문자 만 일치 시키려면 다음 구문을 사용할 수 있습니다.

grep 'a-zA-Z'파일 이름

다음과 같이 숫자를 동일하게 처리 할 수 ​​있습니다.

grep '0-9'파일 이름 08 년 9 월

grep을 사용하여 반복되는 패턴 찾기

중괄호 {}를 사용하여 반복 패턴을 검색 할 수 있습니다.

다음과 같이 전화 번호가 포함 된 파일이 있다고 가정 해보십시오.

  • 055-1234
  • 055-4567
  • 555-1545
  • 444-0167
  • 444-0854
  • 4549-2234
  • x44-1234

숫자의 첫 번째 부분은 세 자리 여야하며이 패턴과 일치하지 않는 행을 찾고 싶습니다.

이전 예에서 0-9는 파일의 모든 숫자를 반환한다는 것을 알고 있습니다.

이 예에서는 세 개의 숫자와 하이픈 (-)으로 시작하는 줄을 원합니다. 다음 구문을 사용하여이를 수행 할 수 있습니다.

grep "^ 0-9 0-9 0-9 -"숫자

앞의 예제에서 알 수 있듯이 캐럿 (^)은 줄이 다음 패턴으로 시작해야 함을 의미합니다.

0-9는 0과 9 사이의 숫자를 검색합니다. 3 회 포함되어 3 개의 숫자와 일치합니다. 마지막으로 하이픈이 세 숫자를 따라야한다는 것을 나타내는 하이픈이 있습니다.

중괄호를 사용하면 다음과 같이 검색을 더 작게 만들 수 있습니다.

grep "^ 0-9 {3 } -"숫자

슬래시는 {bracket}을 이스케이프 처리하여 정규 표현식의 일부로 작동하지만 본질적으로 0-9 {3}은 0과 9 사이의 임의의 수를 세 번 의미합니다.

중괄호는 다음과 같이 사용할 수도 있습니다.

{5,10}{5,}

{5,10}은 검색되는 문자가 적어도 5 회 이상 10 회 이상 반복되어야 함을 의미하지만 {5}는 문자가 적어도 5 회 반복되어야한다는 것을 의미하지만 그 이상이 될 수도 있습니다.

계속 읽기

09 09

grep을 사용하여 다른 명령의 출력 사용

지금까지 개별 파일 내에서 패턴 일치를 살펴 봤지만 grep은 다른 명령의 출력을 패턴 일치를위한 입력으로 사용할 수 있습니다.

좋은 예는 활성 프로세스를 나열하는 ps 명령을 사용하는 것입니다.

예를 들어 다음 명령을 실행하십시오.

ps -ef

시스템에서 실행중인 모든 프로세스가 표시됩니다.

grep을 사용하여 다음과 같이 특정 실행중인 프로세스를 검색 할 수 있습니다.

ps -ef | grep firefox

개요

grep 명령은 기본적인 Linux 명령이며 터미널을 사용할 때 파일 및 프로세스를 검색 할 때 훨씬 쉽게 사용할 수 있으므로 학습 가치가있는 것입니다.