>  기사  >  운영 및 유지보수  >  Linux에서 grep 명령 사용법에 대한 포괄적인 설명

Linux에서 grep 명령 사용법에 대한 포괄적인 설명

齐天大圣
齐天大圣원래의
2020-09-16 16:12:303315검색

리눅스 시스템을 배울 때에는 grep 명령어를 마스터해야 합니다. grep 명령은 파일이나 표준 출력에서 ​​일치하는 행을 찾는 데 사용됩니다. 그 힘은 정규식을 지원한다는 것입니다. 일상 업무에서 grep은 확실히 가장 많이 사용되는 명령 중 하나입니다.

참고: 이 기사에서는 grep 사용법만 소개하고 정규식은 소개하지 않습니다.

몇 가지 일반적인 옵션과 그 의미를 살펴보겠습니다.

options

  • -i 검색 시 대소문자 무시

  • -n 일치하는 모든 줄을 나열하고 줄 번호를 표시합니다.

  • - v 역선택

  • -c 일치하는 행 수만 출력

  • -l 일치하는 파일 이름만 나열하고 특정 일치 행은 나열하지 않음

  • -h 여러 파일을 쿼리할 경우 표시하지 않음 파일 이름

  • -r 재귀 검색

  • -q 결과 출력을 금지하고 종료 상태는 검색 성공 여부를 나타냅니다.

  • --color=auto 찾은 키워드를 색상으로 표시합니다

  • -E, - -extended-regexp PATTERN은 확장 가능한 정규식입니다(ERE로 축약됨)

  • -B, --before-context=NUM 텍스트로 시작하는 NUM줄 인쇄

  • -A , --after-context=NUM 인쇄 텍스트로 끝나는 NUM 줄

grep의 몇 가지 사용법을 소개하겠습니다:

php.ini에 시간대 구성이 있다는 것을 알고 있지만 세부 사항은 명확하지 않습니다. 우리는 시간대만 알고 있습니다. 이제 구성 정보를 찾고 싶습니다. grep을 사용하여 찾을 수 있습니다.

# 加上-i选项,忽略大小写
# grep -i timezone /usr/local/php/etc/php.ini 
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = PRC

grep은 여러 파일 검색을 지원합니다.

# 这里我们加上-n选项,输出文件的行号
# grep -in stdio itoa.c quicksort.c 
itoa.c:2:#include <stdio.h>
quicksort.c:1:#include <stdio.h>

역선택 -v를 사용하면 프로그램을 실행할 때 이 프로그램이 아직 진행 중인 프로세스가 있는지 확인하고 싶습니다. 다음 방법을 사용하세요

# ps aux | grep curl.php 
root     14374 98.3  1.2 277844 12396 pts/0    R+   07:54   1:07 php curl.php
root     14404  0.0  0.0 112664   984 pts/2    R+   07:55   0:00 grep --color=auto curl.php

여기에 문제가 있습니다. grep 자체의 프로세스를 필터링하려면 -v를 사용해야 합니다.

# ps aux | grep curl.php | grep -v grep 
root     14374 98.5  1.2 277844 12396 pts/0    R+   07:54   2:36 php curl.php

마지막 명령에서 루트가 포함된 줄 수를 계산해야 하므로 여기에 다음이 필요합니다. -c 옵션이 사용됩니다.

# last | grep -c root
353

파일의 특정 텍스트를 일괄적으로 교체해야 하는 경우가 종종 있는데, 이러한 텍스트가 어떤 파일에 있는지 어떻게 알 수 있나요? Grep은 -l 옵션을 사용하여 이를 수행할 수 있습니다

# find . -type f -exec grep -l define {} \;
./find.c
./itoa2.c
./wc.c
./test.c
./wordcnt.c
./longestline.c
./cal.c
./sortline2.c
./sortline.c
./found.c
./atof.c

이 예에서는 -E 확장 정규 표현식을 사용합니다. 우리는 php.ini 파일에서 주석 줄과 빈 줄을 필터링하려고 합니다

grep -vE &#39;^;|^$&#39; /usr/local/php/etc/php.ini

또한 일반적으로 사용되는 -r 옵션을 사용하면 현재 디렉터리의 모든 파일과 하위 디렉터리의 파일을 반복적으로 검색할 수 있습니다. 다음으로 웹사이트 디렉터리에 어떤 바닥글 파일이 있는지 확인하고 싶습니다. 다음 명령을 사용하여 찾을 수 있습니다.

grep -rn footer ./

위 내용은 Linux에서 grep 명령 사용법에 대한 포괄적인 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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