>  기사  >  php教程  >  강력한 grep 명령

강력한 grep 명령

高洛峰
高洛峰원래의
2016-12-13 14:46:291930검색

grep 명령에 대한 설명은 인터넷에 많이 있는데, 기본적으로 man 명령을 대략적으로 번역한 것입니다. 읽고 나면 잊어버릴 것 같아요! 개인적으로 명령을 익히는 가장 좋은 방법은 실제 환경을 시뮬레이션하고, 사용할 수 있는 몇 가지 명령 조합을 적어본 다음, 천천히 소화하는 것이라고 생각합니다. 처음에는 기본적으로 암기했지만 시간이 지날수록 점점 시야가 넓어졌습니다. 이제 본론으로 가서 멋진 grep 명령에 대해 이야기해 보겠습니다.

grep은 General Regular Expression Parser의 약자로 리눅스 시스템에서는 간단히 검색 명령어로 이해하면 됩니다. 다음으로 바로 예시로 들어가겠습니다:

1. /etc/passwd 파일에서 지정된 문자열

을 검색합니다. guolei:

grep 'guolei' /etc/passwd

guolei의 따옴표는 생략 가능하지만, 검색 문자열에 공백이 있거나 정규식을 사용하는 경우에는 따옴표를 추가해야 합니다.

2. 여러 파일에서 지정된 문자열 검색

현재 디렉터리에서 guolei 문자열이 포함된 파일 검색:

grep -r guolei *

참고: -r은 recursive의 약자로 재귀 검색을 의미합니다.

현재 디렉터리의 .java 파일에서 guolei 문자열이 포함된 파일을 검색합니다.

grep -r guolei *.java

때때로 검색 결과가 더 많을 수 있으므로 less 명령을 사용하여 표시할 수 있습니다. 결과는

grep -r guolei *.java | less

이거나 파일 이름만 나열하면 됩니다.

grep -rl guolei *.java

우리가 흔히 원하는 또 다른 요구 사항이 있습니다. 문자열의 파일을 지정하는 디렉토리를 찾으십시오. 위 명령은 재귀적으로 검색할 수 없습니다. 예를 들어, 현재 디렉터리에서 guolei 문자열이 포함된 모든 .java 파일을 재귀적으로 검색하려고 합니다.

find . -type f -name *.java -exec grep -il guolei {} \;

3. 검색 시

대소문자를 무시합니다. guolei를 검색할 때 대소문자 무시:

grep -ri guolei *

참고: -i는 대소문자 무시를 의미하는 Ignore Case의 약어입니다.

4. 검색 결과에 줄 번호 나열

검색 결과에 문자열이 나타나는 줄 번호 나열:

grep -rn guolei *.java

참고로 -n은 number의 약자로 줄 번호를 의미합니다.

5. 역검색

실제 개발에서는 더 흔한 상황이 또 있습니다. 특정 문자열의 파일을 포함하지 않음:

grep -riv guolei * | less

참고: -v는 reverse의 약자로 reverse를 의미합니다. 위의 예에서는 현재 디렉터리에서 guolei가 포함되지 않은 파일을 검색합니다.

6. 파이프라인에서 grep 사용

우리는 파이프라인 명령에서 grep을 자주 사용하는데, 이것이 가장 일반적입니다. 예를 들어, 현재 시스템에서 mysql 프로세스를 검색하고 싶습니다:

ps -ef | grep mysql

또는 현재 디렉토리에서 html로 끝나는 파일 목록:

ls | grep 'html$'


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