웹사이트 검색

정규식을 사용하여 일반 텍스트 데이터를 검색하는 6가지 최고의 CLI 도구


이 가이드에서는 텍스트 파일에서 일치하는 문자열이나 패턴을 검색하는 데 사용되는 최고의 명령줄 도구 중 일부를 둘러봅니다. 이러한 도구는 일반적으로 검색 패턴을 설명하기 위한 고유한 문자열인 REGEX로 축약되는 정규식과 함께 사용됩니다.

더 이상 고민하지 않고 들어가 보겠습니다.

1. 그렙 명령

첫 번째로 등장하는 것은 grep 유틸리티 도구입니다. 이는 Global Regular Expression Print의 약어로, 파일에서 특정 문자열이나 패턴을 검색할 때 유용하게 사용되는 강력한 명령줄 도구입니다. .

Grep은 기본적으로 최신 Linux 배포판과 함께 제공되며 다양한 검색 결과를 반환할 수 있는 유연성을 제공합니다. grep을 사용하면 다음과 같은 다양한 기능을 수행할 수 있습니다.

  • 파일에서 문자열이나 일치하는 패턴을 검색합니다.
  • Gzip으로 압축된 파일에서 문자열이나 일치하는 패턴을 검색합니다.
  • 문자열 일치 수를 계산합니다.
  • 문자열이나 패턴이 포함된 줄 번호를 인쇄합니다.
  • 디렉터리에서 문자열을 반복적으로 검색합니다.
  • 역방향 검색을 수행합니다(예: 검색 기준과 일치하지 않는 문자열 결과 표시).
  • 문자열을 검색할 때 대소문자 구분을 무시합니다.

grep 명령을 사용하는 구문은 매우 간단합니다.

grep pattern FILE

예를 들어, 대소문자 구분을 무시하고 hello.txt와 같이 파일에서 'Linux' 문자열을 검색하려면 다음 명령을 실행합니다.

grep -i Linux hello.txt

grep과 함께 사용할 수 있는 더 많은 옵션을 얻으려면 고급 grep 명령 예를 보여주는 기사를 읽어보세요.

2. sed 명령

Sed(Stream Editor의 약어)는 텍스트 파일의 텍스트를 조작하기 위한 또 다른 유용한 명령줄 도구입니다. Sed는 비대화형 방식으로 특정 파일의 문자열을 검색, 필터링 및 대체합니다.

기본적으로 sed 명령은 출력을 STDOUT(Standard Out)으로 인쇄합니다. 이는 실행 결과가 표준 출력 대신 터미널에 인쇄됨을 의미합니다. 파일로 저장되는 중입니다.

Sed 명령은 다음과 같이 호출됩니다.

sed -OPTIONS command [ file to be edited ]

예를 들어, 'Unix'의 모든 인스턴스를 'Linux'로 바꾸려면 다음 명령을 호출합니다.

sed 's/Unix/Linux' hello.txt

출력을 터미널에 인쇄하는 대신 리디렉션하려면 표시된 대로 리디렉션 기호 ( > )를 사용하세요.

sed 's/Unix/Linux' hello.txt > output.txt

명령의 출력은 화면에 인쇄되는 대신 output.txt 파일에 저장됩니다.

사용할 수 있는 더 많은 옵션을 확인하려면 매뉴얼 페이지를 다시 한 번 확인하세요.

man sed

3. 확인 명령

Ack는 Perl로 작성된 빠르고 이식 가능한 명령줄 도구입니다. Ackgrep 유틸리티를 대체하는 것으로 간주되며 시각적으로 매력적인 방식으로 결과를 출력합니다.

Ack 명령은 파일이나 디렉터리에서 검색 기준과 일치하는 항목이 포함된 줄을 검색합니다. 그런 다음 줄에서 일치하는 문자열을 강조 표시합니다.
Ack에는 파일 확장자와 어느 정도 파일 내용을 기준으로 파일을 구별하는 기능이 있습니다.

승인 명령 구문:

ack [options] PATTERN [FILE...]
ack -f [options] [DIRECTORY...]

예를 들어 검색어 Linux를 확인하려면 다음을 실행합니다.

ack Linux hello.txt

검색 도구는 매우 지능적이며 사용자가 제공한 파일이나 디렉터리가 없는 경우 현재 디렉터리와 하위 디렉터리에서 검색 패턴을 검색합니다.

아래 예에서는 파일이나 디렉터리가 제공되지 않았지만 ack는 사용 가능한 파일을 자동으로 감지하고 제공된 일치 패턴을 검색했습니다.

ack Linux

시스템에 ack를 설치하려면 다음 명령을 실행하세요.

sudo apt install ack-grep    [On Debian/Ubuntu]
sudo dnf install ack-grep    [On CentOS/RHEL]

4. Awk 명령

Awk는 완전한 기능을 갖춘 스크립트 언어이자 텍스트 처리 및 데이터 조작 도구입니다. 검색 패턴이 포함된 파일이나 프로그램을 검색합니다. 문자열이나 패턴이 발견되면 awk는 일치 항목이나 행에 대해 조치를 취하고 결과를 STDOUT에 인쇄합니다.

AWK 패턴은 중괄호로 묶이고 전체 프로그램은 작은따옴표로 묶습니다.

가장 간단한 예를 들어보겠습니다. 다음과 같이 시스템 날짜를 인쇄한다고 가정해 보겠습니다.

date

요일인 첫 번째 값만 인쇄한다고 가정해 보겠습니다. 이 경우 다음과 같이 출력을 awk로 파이프하세요.

date | awk '{print $1}'

후속 값을 표시하려면 다음과 같이 쉼표를 사용하여 구분하십시오.

date | awk '{print $1,$2}'

위의 명령은 요일과 날짜를 표시합니다.

awk와 함께 사용할 수 있는 더 많은 옵션을 얻으려면 awk 명령 시리즈를 읽어보세요.

5. 실버 검색자

Silver Searcher는 ack와 유사하지만 속도에 중점을 둔 크로스 플랫폼 및 오픈 소스 코드 검색 도구입니다. 이를 통해 가능한 가장 짧은 시간에 파일 내의 특정 문자열을 쉽게 검색할 수 있습니다.

구문:

ag OPTIONS search_pattern /path/to/file

예를 들어 hello.txt 파일에서 'Linux' 문자열을 검색하려면 다음 명령을 호출합니다.

ag Linux hello.txt

추가 옵션을 보려면 맨 페이지를 방문하십시오.

man ag

6. 립그렙

마지막으로 ripgrep 명령줄 도구가 있습니다. Ripgrep은 정규식 패턴을 검색하기 위한 크로스 플랫폼 유틸리티입니다. 앞서 언급한 모든 검색 도구보다 훨씬 빠르며 디렉터리에서 일치하는 패턴을 반복적으로 검색합니다. 속도와 성능 측면에서 Ripgrep보다 뛰어난 도구는 없습니다.

기본적으로 ripgrep은 바이너리 파일/숨겨진 파일 및 디렉터리를 건너뜁니다. 또한 기본적으로 .gitignore/.ignore/.rgignore 파일에서 무시되는 파일은 검색하지 않습니다.

Ripgrep을 사용하면 특정 파일 형식을 검색할 수도 있습니다. 예를 들어 검색을 Javascript 파일로 제한하려면 다음을 실행하세요.

rg -Tsj

ripgrep을 사용하는 구문은 매우 쉽습니다.

rg [OPTIONS] PATTERN [PATH...]

예를 들어. 현재 디렉터리에 있는 파일에서 'Linux' 문자열 인스턴스를 검색하려면 다음 명령을 실행하세요.

rg Linux

시스템에 ripgrep을 설치하려면 다음 명령을 실행하세요.

sudo apt install ripgrep      [On Debian/Ubuntu]
sudo pacman -S ripgrep        [On Arch Linux]
sudo zypper install ripgrep   [On OpenSuse]
sudo dnf install ripgrep      [On CentOS/RHEL/Fedora]

추가 옵션을 보려면 맨 페이지를 방문하십시오.

man rg

이는 Linux에서 텍스트를 검색, 필터링 및 조작하는 데 가장 널리 사용되는 명령줄 도구 중 일부입니다. 우리가 빠뜨렸다고 생각되는 다른 도구가 있으면 댓글 섹션에 알려주십시오.