Linux에서 Grep 명령을 사용하는 방법

파일 내용을 쉽게 필터링하고 표시하기 위한 실제 예제와 함께 grep 명령 이해

GREP'글로벌 정규식 인쇄'를 나타냅니다. Linux에서 제공하는 유용한 명령줄 유틸리티로 사용자가 제공한 패턴과 일치하는 텍스트 줄을 검색합니다.

grep사용자가 특정 파일에서 검색하고자 하는 문자열이나 단어의 형태로 사용자로부터 입력을 받습니다. 그런 다음 명령은 이 패턴에 대해 사용자가 지정한 파일을 확인한 다음 제공된 패턴과 일치하는 행을 반환합니다.

파일의 내용을 필터링하여 단일 또는 여러 파일의 특정 내용을 동시에 검색하는 작업을 더 쉽게 만듭니다.

이 기사에서는 grep몇 가지 실용적인 예를 통해 세부적으로 명령 의 기능을 검토해 보겠습니다.

grep명령으로 사용 가능한 옵션

다음은 grep명령 과 함께 자주 사용하게 될 몇 가지 기본 옵션 입니다.

옵션 설명
-i 대소문자를 구분하지 않는 검색의 경우
-r 지정된 디렉토리와 그 하위 디렉토리에 있는 모든 파일을 재귀적으로 검색하려면
-c 문자열이 나타나는 총 횟수를 표시하려면
-v 일치하지 않는 라인을 표시하려면
-w 별도로 사용되는 특정 단어에 대한 필터

grep명령 사용

grep명령은 일반적으로 파이프( |) 유틸리티 와 함께 사용됩니다 . 다른 Linux 명령과 함께 사용하려는 경우 셸 파이프로 구현할 수 있습니다. 하지만 grep파이프( |) 유틸리티 없이 개별적으로 사용할 수도 있습니다 .

grep파이프 유틸리티가 있거나 없는 명령 의 몇 가지 기본 구문을 살펴보겠습니다 .

먼저 grep명령 을 설명하는 데 사용할 샘플 텍스트 파일을 보여드리겠습니다 .

INDIA IS A BEAUTIFUL COUNTRY OF PEACE LOVING PEOPLE.
india stands on three pillars of legislature, executive and judiciary.
India Is a Beautiful Country Of Peace Loving People.
India cares for the people as it's resource
cartesian coordinates
importance of all th cartesian coordinates.
Following are two empty lines.



use of a bullock cart is a common sight in the village for the agrarian chores.

This is the end of the sample file.

grep파이프( | ) 유틸리티 와 함께 사용

grep명령은 쉘 파이프를 사용하여 다른 Linux 명령과 함께 구현할 수 있습니다. 마찬가지로 cat명령을 사용하여 파일의 내용을 표시하지만 동시에 grep보고 싶은 내용만 표시 하는 명령을 사용하여 출력을 파이핑합니다 . 이것은 예제를 살펴보면 더 명확해질 것입니다.

구문 :

[command] | grep [string]

:

cat sample.txt | grep legislature

여기에서 cat명령을 사용 하여 'sample.txt' 파일의 일부 행을 표시했습니다. '입법부'라는 단어가 포함된 행만 표시되고 나머지 행은 무시됩니다.

출력 :

[email protected]:~/workspace$ cat sample.txt | grep legislature
india stands on three pillars of legislature, executive and judiciary.
[email protected]:~/workspace$

grep파이프( | ) 유틸리티 없이 사용

grep파이프( | ) 유틸리티를 사용하지 않고 개별 명령으로 직접 사용할 수도 있습니다 .

구문 :

grep [string_to_be_searched] [filename]

:

grep India sample.txt

출력 :

India Is a Beautiful Country Of Peace Loving People.
India cares for the people as it's resource

따라서 grep텍스트 파일 'sample.txt'에서 'India' 문자열이 포함된 행을 필터링 하기 위해 명령을 직접 사용했습니다 .

grep명령을 사용하여 대소문자를 구분하지 않는 검색

Linux는 터미널에서 명령을 실행할 때 대소문자 구분에 대해 매우 신중합니다. 이를 위해서는 사용자가 명령에 입력한 문자열의 대소문자에 주의해야 합니다.

이를 예를 통해 살펴보자.

grep peace sample.txt

이 경우 샘플 파일에 'peace'라는 단어가 없기 때문에 출력이 되지 않습니다. 대문자 'P'가 있는 'Peace'라는 단어가 있습니다. 단어는 같지만 grep옵션 없이 명령을 사용하면 대소문자 변경을 무시하고 파일에서 정확히 일치하는 항목을 검색합니다.

이 모호성을 피하기 위해 "문자열을 넣은 경우는 잊어버리고 파일에서 일치하는 모든 패턴을 검색하십시오"-i 라는 grep명령 을 문자 그대로 알려주 는 옵션을 사용 하면 됩니다.

통사론:

grep -i [string] [filename]

:

grep -i peace sample.txt

출력 :

INDIA IS A BEAUTIFUL COUNTRY OF PEACE LOVING PEOPLE.
India Is a Beautiful Country Of Peace Loving People.

일치하는 문자열의 경우에 관계없이 모든 일치하는 행이 표시됩니다.

grep명령을 사용한 재귀 검색

-r옵션은 사용자가 명령에서 제공한 문자열 패턴과 일치하는 디렉토리 및 모든 하위 디렉토리의 모든 파일을 검색합니다.

구문 :

grep -i -r [string] [file_path]

:

grep -i -r tomcat /home/gaurav/workspace

여기서 문자열은 'tomcat'이며 디렉토리 작업 공간에서 검색됩니다. 'workspace' 디렉토리의 모든 하위 디렉토리와 파일도 제공된 문자열 패턴과 일치하도록 스캔됩니다.

출력 :

./context_log.policy:// catalina.policy - Security Policy Permissions for Tomcat 7
./context_log.policy:// Note: If tomcat-juli.jar is in ${catalina.base} and not in ${catalina.home},
./context_log.policy://  grant codeBase "file:${catalina.base}/bin/tomcat-juli.jar" {..}
./context_log.policy:grant codeBase "file:${catalina.home}/bin/tomcat-juli.jar" {
./context_log.policy:    permission java.lang.RuntimePermission "accessClassInPackage.org.apache.tomcat.websocket.server";
./context.xml:    
./catalina.properties:# - Tomcat Bootstrap JARs
./catalina.properties:# - Tomcat API JARs
./catalina.properties:# - Tomcat JARs
./catalina.properties:# - Common non-Tomcat JARs
./catalina.properties:org.apache.catalina.startup.TldConfig.jarsToSkip=tomcat7-websocket.jar
./catalina.properties:tomcat.util.buf.StringCache.byte.enabled=true
./catalina.properties:#tomcat.util.buf.StringCache.char.enabled=true
./catalina.properties:#tomcat.util.buf.StringCache.trainThreshold=500000
./catalina.properties:#tomcat.util.buf.StringCache.cacheSize=5000
./server.xml:              pathname="conf/tomcat-users.xml" />
./server.xml:    
./tomcat-users.xml:  
./tomcat-users.xml:
./web.xml:  
./web.xml:  

참고 : 명령 -r과 함께 옵션을 사용하는 동안 grep파일 이름이 아닌 파일 경로를 제공해야 합니다.

grep명령으로 만 전체 단어 검색

많은 경우 한 단어를 검색하지만 개별 단어가 아닌 일치하는 단어를 포함하는 일치하는 행으로 터미널을 채우는 경우가 많습니다. 하위 부분이 입력한 문자열인 일부 단어가 포함된 행을 볼 수 있습니다.

혼란스럽습니까? 걱정하지 마십시오. 예제를 보면 훨씬 더 쉽게 이해할 수 있습니다.

:

여기에서 개별 단어 'cart'를 검색하여 'sample.txt' 파일에서 이 단어와 일치하는 모든 행을 표시하려고 합니다.

grep -i cart sample.txt

출력 :

Cartesian coordinates
importance of all the Cartesian coordinates.
use of a bullock cart is a common sight in the village for the agrarian chores
The cart went missing as the boy left it loose.

출력에서 'Cartesian'이라는 단어에도 'cart'라는 단어가 포함되어 있으므로 표시하지 않으려는 경우에도 'Cartesian'이라는 단어가 포함된 행도 표시됩니다.

이 모호성을 해결하기 위해 명령 -w과 함께 옵션을 사용할 수 있습니다 grep.

구문 :

grep -i -w [string] [filename]

:

grep -i -w cart sample.txt

출력 :

use of a bullock cart is a common sight in the village for the agrarian chores.
The cart went missing as the boy left it loose.

이제 – w옵션을 사용 grep하면 'cart'라는 단어가 전체적으로 사용되는 줄만 표시됩니다.

grep명령을 사용하여 반전 검색

grep명령은 역방향으로도 사용할 수 있습니다. grep일치하는 줄을 숨기고 일치하지 않는 줄만 표시 하여 명령을 반대로 사용할 수 있습니다 . 명령 -v과 함께 옵션을 사용하여 이 작업을 수행할 수 있습니다 grep.

구문 :

grep -i -v [string] [filename]

:

grep -i -v resource sample.txt

출력 :

INDIA IS A BEAUTIFUL COUNTRY OF PEACE LOVING PEOPLE.
india stands on three pillars of legislature, executive and judiciary.
India Is a Beautiful Country Of Peace Loving People.
cartesian coordinates
importance of all th cartesian coordinates.




use of a bullock cart is a common sight in the village for the agrarian chores.
This is the end of the sample file.

출력에서 'resource'라는 단어가 포함된 행을 제외한 다른 모든 행이 표시됩니다.

일치하는 문자열의 발생 횟수 계산

grep파일의 데이터가 방대한 경우 명령 의 출력 은 일반적으로 매우 깁니다. 일치 항목이 많을수록 grep명령 의 출력이 길어집니다 . Linux는 일치 항목 수를 표시할 수 있는 옵션을 제공합니다.

구문 :

grep -i -c [string] [filename]

:

grep -i -c india sample.txt

출력 :

[email protected]:~/workspace$ grep -i -c india sample.txt
4
[email protected]:~/workspace$

여기서 출력은 sample.txt 파일에서 'India'라는 단어의 출현 횟수인 숫자입니다.

참고 : -i대소문자 구분 문제를 안전하게 처리하기 위해 모든 예 에서 옵션을 사용했습니다 . 찾고 있는 단어의 대소문자가 확실하다면 -i 옵션을 생략해도 됩니다.

결론

grep이 자습서에서 Linux 시스템에서 명령 의 기본적인 사용을 배웠습니다 . 우리는 또한 우리의 요구 사항에 가장 잘 맞는 다양한 콘텐츠를 표시하고 터미널을 많은 줄로 혼잡하게 만들지 않는 방법을 배웠습니다. grep명령은 큰 데이터 세트를 스캔하는 데 사용되는 경우 확실히 시간을 절약할 수 있습니다.

Tags: #그렙

Chromebook에서 복사하여 붙여넣는 방법

Chromebook에서 복사하여 붙여넣는 방법

Chromebook으로 전환할 때 가장 먼저 궁금해할 수 있는 것은 이전 OS에서 손에 꼽히던 것과 같은 기본적인 작업을 수행하는 방법입니다. 복사 및 붙여넣기는 한 지점 또는 다른 지점에서 사용해야 하는 기본적인 기능 중 하나입니다.

tt를 사용하여 Linux에서 타이핑 테스트를 수행하는 방법

tt를 사용하여 Linux에서 타이핑 테스트를 수행하는 방법

기술의 현대 시대에 타이핑은 많은 직업에서 가장 일반적인 활동 중 하나가 되었습니다. 정확하게 입력하는 법을 배우면 같은 시간에 더 많은 일을 할 수 있습니다.

Ubuntu에서 Wi-Fi가 작동하지 않습니까? 해결 방법은 다음과 같습니다.

Ubuntu에서 Wi-Fi가 작동하지 않습니까? 해결 방법은 다음과 같습니다.

Ubuntu는 견고성과 비교적 적은 오류로 유명합니다. 그러나 확실히 문제가 많은 것은 아닙니다. 그러한 문제 중 하나는 Wi-Fi 드라이버에 있습니다. Wi-Fi가 작동하지 않는 경우에만 시스템 전원을 켤 수 있습니다.

Ubuntu의 루트 수퍼유저의 차이점

Ubuntu의 루트 수퍼유저의 차이점

Ubuntu의 루트 수퍼유저의 차이점이 무엇인지 궁금하십니까? 글쎄, 우리는 당신을 여기에서 다루었습니다.

Chromebook에서 QR 코드를 만들고 스캔하는 방법

Chromebook에서 QR 코드를 만들고 스캔하는 방법

빠른 응답 코드 또는 QR 코드는 기존 바코드보다 더 많은 정보를 포함하는 고급 바코드입니다. 이 코드는 2차원이므로 세로 또는 가로로 스캔할 수 있습니다.

Arch Linux에서 패키지를 설치하고 제거하는 방법

Arch Linux에서 패키지를 설치하고 제거하는 방법

Arch Linux에 패키지를 설치하고 싶지만 방법을 모르십니까? 많은 사람들이 Debian 기반 배포판에서 Arch로 처음 마이그레이션할 때 이 문제에 직면합니다. 그러나 패키지 관리자를 사용하여 Arch 기반 시스템에서 패키지를 쉽게 관리할 수 있습니다.

Ubuntu의 Alt-Tab에서 Windows 그룹을 해제하는 방법

Ubuntu의 Alt-Tab에서 Windows 그룹을 해제하는 방법

Ubuntu에서는 기본적으로 창 대신 응용 프로그램을 전환할 수 있습니다. Ubuntu의 Alt-Tab에서 이를 반대로 하고 탭을 그룹 해제하는 방법은 다음과 같습니다.

Linux에 Spotify를 설치하는 방법

Linux에 Spotify를 설치하는 방법

Spotify는 가장 큰 음악 스트리밍 서비스 중 하나입니다. 모바일(Android 및 iOS) 및 데스크톱(Mac 및 Windows) 장치 모두에 대한 기본 클라이언트가 있습니다.

Linux를 시작하는 9가지 기본 명령

Linux를 시작하는 9가지 기본 명령

Linux 사용법 가이드는 터미널에서 특정 작업을 수행할 것으로 예상하는 경우가 많으며, 이는 처음에는 겁이 날 수 있습니다. 그러나 걱정하지 마십시오. 이 Linux 명령 치트 시트는 터미널을 열고 몇 가지 유용한 명령을 실행하는 과정을 다룹니다.

2020년 Ubuntu 20.04를 위한 15가지 최고의 테마

2020년 Ubuntu 20.04를 위한 15가지 최고의 테마

Ubuntu 20.04s의 새로운 GNOME 데스크탑에 새로 업데이트된 많은 테마를 설치할 준비가 되었습니다. 2020년 최고의 우분투 테마 목록은 다음과 같습니다.