운영 및 유지보수 리눅스 운영 및 유지 관리 쉘 프로그래밍 - grep 명령을 사용하는 방법은 무엇입니까?

쉘 프로그래밍 - grep 명령을 사용하는 방법은 무엇입니까?

Jun 20, 2017 am 11:12 AM
grep shell 사용 주문하다 프로그램 작성

정규식을 배우기 전에 먼저 명확하게 하고 명심해야 합니다. 즉:

Linux에서 와일드카드는 셸에 의해 해석되는 반면 정규식은 명령 설명에 의해 해석됩니다. 둘을 혼동합니다. 기억하다! ! !

일반적으로 세 가지 텍스트 처리 도구/명령인 grep, sed 및 awk가 있으며, 세 가지 모두 정규식을 해석할 수 있습니다. 아래에서는 grep 명령을 사용하는 방법을 소개하겠습니다.

1. grep 명령을 사용하여 파일의 내용을 검색합니다.

grep 및 egrep 명령은 하나 이상의 파일 내용에서 특정 문자 패턴을 검색할 수 있습니다. 정규 표현식이라고도 합니다. 패턴은 단일 문자, 문자열, 단어 또는 문장일 수 있습니다.

정규 표현식은 일련의 문자열을 설명하는 패턴입니다. 정규식의 구성은 연산자를 사용하여 더 작은 표현식을 새로운 표현식으로 결합함으로써 수학 표현식을 모델로 합니다. 정규식은 일반 텍스트 리터럴이거나 패턴을 생성하는 데 사용되는 특수 문자일 수 있습니다. 검색 패턴을 추가로 정의하기 위해 grep 명령은 와일드카드라고도 하는 다음 정규식 메타 문자를 지원합니다.

ps: 정규식 언어는 리터럴(일반) 텍스트 문자와 메타 문자라는 두 가지 기본 문자 유형으로 구성됩니다. 메타문자는 정규식 처리 능력을 제공합니다. 소위 메타 문자는 정규식에서 특별한 의미를 갖는 특수 문자를 말하며, 대상 객체에서 선행 문자(즉, 메타 문자 앞의 문자)의 모양 패턴을 지정하는 데 사용할 수 있습니다.

c*: 0개 이상의 문자와 일치 c

.: 단 하나의 문자와 일치(개행 제외)

[xyz]: 대괄호와 일치

의 모든 문자와 일치 [^xyz]: 대괄호 안의 문자를 제외한 모든 문자와 일치합니다.

^: 줄의 시작 부분을 잠급니다.

$: 줄의 끝 부분을 잠급니다.

at 기본 정규식에서는, *, +, {}, | 및 ()와 같은 메타 문자는 원래 의미를 잃었습니다. 원래 의미를 복원하려면 *, + 등과 같은 백슬래시가 앞에 와야 합니다.

grep 명령은 각 파일이나 표준 출력에서 ​​특정 패턴을 검색하는 데 사용됩니다. grep 명령을 사용하면 지정된 문자 패턴이 포함된 각 줄이 화면에 인쇄됩니다. grep 명령의 구문 형식은 다음과 같습니다.

grep 옵션 패턴 파일 이름

그 중 options grep 명령 검색 방법을 변경할 수 있습니다. 단, -w 옵션을 제외하고 다른 모든 옵션은 egrep 및 fgrep 명령에서 사용할 수 있습니다. grep 명령의 일반적인 옵션은 다음과 같습니다.

-c(count): 패턴이 포함된 줄 수만 나열

-i(ignore): 패턴

에 있는 문자의 대소문자를 무시합니다. -l(list): 일치하는 줄이 있는 파일 이름 나열

-n: 일치하는 줄 앞에 줄 번호 나열

-v: 일치하는 패턴이 없는 줄 나열(반전)

-w: 표현식을 완전한 단어로 검색하고 부분적으로 일치하는 줄을 무시하세요

-q : 자동 모드, 출력 없음, 실행 성공 여부, 즉 원하는 콘텐츠가 필터링되었는지 확인하려면 $?를 사용해야 합니다.

-A n : 일치에 성공하면 일치하는 줄과 다음 n 줄이 함께 인쇄됩니다.

-B n : 일치에 성공하면 일치하는 줄과 이전 n 줄이 함께 인쇄됩니다.

-C n : 일치에 성공하면 일치하는 줄과 앞뒤의 n 줄이 함께 인쇄됩니다.

ps: 여러 파일을 검색하면 grep 명령의 결과입니다. 파일에서 찾은 패턴과 일치하는 파일만 표시합니다.

단일 파일을 검색하는 경우 grep 명령의 결과는 일치하는 패턴을 포함하는 모든 줄을 표시합니다.

위는 grep 명령어를 사용하는 기본 방법입니다. 그러나 간단한 정규식으로는 검색하려는 콘텐츠를 찾을 수 없는 경우가 있습니다. 모드 1과 모드 2를 모두 만족하는 데이터 라인을 검색하려면 egrep 명령이 유용할 수 있습니다.

egrep 명령의 구문 형식은 grep 명령과 동일합니다. 그러나 egrep 명령은 확장 정규식의 메타 문자를 사용하여 하나 이상의 파일 내용에서 특정 패턴을 검색하는 데 사용됩니다. 확장된 정규식 메타 문자에는 grep 명령에 사용되는 정규식 메타 문자가 포함되며 대략 다음과 같은 추가 메타 문자도 추가됩니다.

+: 하나 이상의 선행 문자와 일치 문자

a|b: a와 일치 또는 b

(RE): 괄호 안의 정규식 RE를 일치시키고 egrep 명령 사용법을 이해합니다. grep 명령의 모든 옵션 egrep을 사용할 수 있으므로(egrep이 더 강력함) 편의상 egrep 명령을 사용하여 모든 사람에게 설명하겠습니다.

예 1: 파일에 루트가 포함된 행 표시 /etc/passwd

예제 2: /etc/passwd에서 bash를 포함하는 모든 줄을 출력하고, 이 줄 위와 아래 두 줄의 내용도 출력합니다

예 3: /etc/passwd에 nologin이 포함된 행 수 표시

예 4: /etc/passwd의 행 표시 루트를 포함하고 추가 줄 번호 하나의 출력

예 5:

새로운 사용자 생성 abominable, abominate, anomie,atomize, 정규 표현식 작성

예 6: 새 사용자 만들기 Alex213sb, Wpq2222b, yH438PIG, egon666, egon사용자 이름이 문자 + 숫자 + 문자로 구성된 행을 필터링하세요

예 7: /etc 디렉터리에서 루트가 포함된 모든 파일 이름 추출 표시

예 8: /etc/ssh/sshd_config

에서 모든 주석과 모든 빈 줄 필터링

위의 예는 단지 작은 부분일 뿐입니다. 열심히 연습하시면 곧 grep 명령 사용법을 익힐 수 있을 것입니다^^

위 내용은 쉘 프로그래밍 - grep 명령을 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

BTCC 튜토리얼: BTCC 교환에서 MetaMask 지갑을 바인딩하고 사용하는 방법은 무엇입니까? BTCC 튜토리얼: BTCC 교환에서 MetaMask 지갑을 바인딩하고 사용하는 방법은 무엇입니까? Apr 26, 2024 am 09:40 AM

MetaMask(중국어로 Little Fox Wallet이라고도 함)는 무료이며 호평을 받는 암호화 지갑 소프트웨어입니다. 현재 BTCC는 MetaMask 지갑에 대한 바인딩을 지원합니다. 바인딩 후 MetaMask 지갑을 사용하여 빠르게 로그인하고 가치를 저장하고 코인을 구매할 수 있으며 첫 바인딩에는 20 USDT 평가판 보너스도 받을 수 있습니다. BTCCMetaMask 지갑 튜토리얼에서는 MetaMask 등록 및 사용 방법, BTCC에서 Little Fox 지갑을 바인딩하고 사용하는 방법을 자세히 소개합니다. MetaMask 지갑이란 무엇입니까? 3천만 명 이상의 사용자를 보유한 MetaMask Little Fox Wallet은 오늘날 가장 인기 있는 암호화폐 지갑 중 하나입니다. 무료로 사용할 수 있으며 확장으로 네트워크에 설치할 수 있습니다.

win11 위젯을 삭제하는 방법 Windows 11 위젯 기능 팁을 제거하는 명령 win11 위젯을 삭제하는 방법 Windows 11 위젯 기능 팁을 제거하는 명령 Apr 11, 2024 pm 05:19 PM

위젯은 Win11 시스템의 새로운 기능입니다. 그러나 일부 사용자가 위젯을 많이 사용하지 않고 공간을 차지하기 때문에 비활성화하려는 경우가 있습니다. 아래 편집기에서 작동 방법을 가르쳐 드리며 직접 사용해 보실 수 있습니다. 위젯이란 무엇입니까? 위젯은 Windows 바탕 화면에서 즐겨 사용하는 앱과 서비스의 동적 콘텐츠를 표시하는 작은 카드입니다. 이러한 위젯은 위젯 보드에 나타나며, 여기에서 귀하의 관심사를 반영하여 위젯을 검색하고, 고정하고, 고정 해제하고, 정렬하고, 크기를 조정하고, 사용자 정의할 수 있습니다. 위젯보드는 사용량에 따른 관련 위젯과 개인화된 콘텐츠를 표시하도록 최적화되어 있습니다. 실시간 날씨를 볼 수 있는 작업 표시줄 왼쪽 모서리에 있는 위젯 팔레트를 엽니다.

정규 표현식을 사용하여 PHP 배열에서 중복 값 제거 정규 표현식을 사용하여 PHP 배열에서 중복 값 제거 Apr 26, 2024 pm 04:33 PM

정규식을 사용하여 PHP 배열에서 중복 값을 제거하는 방법: 정규식 /(.*)(.+)/i를 사용하여 중복 항목을 일치시키고 바꿉니다. 배열 요소를 반복하고 preg_match를 사용하여 일치하는지 확인합니다. 일치하면 값을 건너뛰고, 그렇지 않으면 중복 값이 ​​없는 새 배열에 추가합니다.

비트겟 런치풀이란? Bitget 런치풀은 어떻게 사용하나요? 비트겟 런치풀이란? Bitget 런치풀은 어떻게 사용하나요? Jun 07, 2024 pm 12:06 PM

BitgetLaunchpool은 모든 암호화폐 애호가를 위해 설계된 동적 플랫폼입니다. BitgetLaunchpool은 독특한 제품으로 돋보입니다. 여기에서 토큰을 스테이킹하여 에어드랍, 높은 보상, 초기 참가자에게만 제공되는 넉넉한 상금 풀 등 더 많은 보상을 잠금 해제할 수 있습니다. BitgetLaunchpool이란 무엇인가요? BitgetLaunchpool은 사용자 친화적인 이용 약관에 따라 토큰을 스테이킹하고 획득할 수 있는 암호화폐 플랫폼입니다. Launchpool에 BGB 또는 기타 토큰을 투자함으로써 사용자는 무료 에어드랍, 수익을 받고 넉넉한 보너스 풀에 참여할 수 있는 기회를 갖게 됩니다. 담보자산의 수입은 T+1시간 이내에 계산되며, 보상은 다음을 기준으로 합니다.

PHP 함수와 Shell 함수의 차이점 PHP 함수와 Shell 함수의 차이점 Apr 24, 2024 pm 06:39 PM

PHP 함수와 셸 함수의 주요 차이점은 보안(PHP 함수가 더 안전함), 안정성(셸 함수는 운영 체제에 따라 다름), 기능성(셸 함수는 더 강력하지만 셸에 의해 제한됨) 및 성능(PHP 함수는 일반적으로 더 빠름) 및 복잡성(셸 기능이 더 복잡함) 둘 다 파일 시스템, 프로세스 및 명령 작업에 사용되지만 PHP 기능은 내장되어 있고 Shell 기능은 외부 쉘을 통해 호출됩니다. 따라서 서버 파일 다운로드 시나리오에서는 file_put_contents() 함수가 더 안전하고 wget 명령은 더 유연합니다.

프로그래밍이란 무엇을 위한 것이며 프로그래밍을 배워서 무슨 소용이 있습니까? 프로그래밍이란 무엇을 위한 것이며 프로그래밍을 배워서 무슨 소용이 있습니까? Apr 28, 2024 pm 01:34 PM

1. 프로그래밍은 웹사이트, 모바일 애플리케이션, 게임, 데이터 분석 도구 등 다양한 소프트웨어와 애플리케이션을 개발하는 데 사용될 수 있습니다. 응용 분야는 매우 광범위하여 과학 연구, 의료, 금융, 교육, 엔터테인먼트 등 거의 모든 산업을 포괄합니다. 2. 프로그래밍을 배우면 문제 해결 능력과 논리적 사고 능력을 향상하는 데 도움이 됩니다. 프로그래밍하는 동안 우리는 문제를 분석 및 이해하고, 해결책을 찾고, 이를 코드로 변환해야 합니다. 이러한 사고방식은 우리의 분석적이고 추상적인 능력을 키우고 실제적인 문제를 해결하는 능력을 향상시킬 수 있습니다.

Python을 사용한 문제 해결: 초보 코더로서 강력한 솔루션 잠금 해제 Python을 사용한 문제 해결: 초보 코더로서 강력한 솔루션 잠금 해제 Oct 11, 2024 pm 08:58 PM

Python은 초보자에게 문제 해결 능력을 부여합니다. 사용자 친화적인 구문, 광범위한 라이브러리 및 변수, 조건문 및 루프 사용 효율적인 코드 개발과 같은 기능을 제공합니다. 데이터 관리에서 프로그램 흐름 제어 및 반복 작업 수행에 이르기까지 Python은 제공합니다.

C++ 프로그래밍 퍼즐 모음: 사고를 자극하고 프로그래밍 기술을 향상시킵니다. C++ 프로그래밍 퍼즐 모음: 사고를 자극하고 프로그래밍 기술을 향상시킵니다. Jun 01, 2024 pm 10:26 PM

C++ 프로그래밍 퍼즐은 피보나치 수열, 계승, 해밍 거리, 배열의 최대값과 최소값 등과 같은 알고리즘 및 데이터 구조 개념을 다룹니다. 이러한 퍼즐을 풀면 C++ 지식을 통합하고 알고리즘 이해 및 프로그래밍 기술을 향상시킬 수 있습니다.

See all articles