grep의 기초 지식 - 원하는 모든 것을 필터링

도구grep는 파일을 포함하여 주어진 입력 모드를 필터링할 수 있는 훌륭한 CLI (명령줄 인터페이스) 입니다.
GNU grep이 있는지 확인하려면 터미널 grep --version에서 실행할 수 있습니다.만약 GNU grep이 없다면, 나는 네가 그것을 설치하는 것을 건의한다.
이 글은 내가 제작한 아래의 영상의 총결이다.먼저 보시기 바랍니다. 그것은 많은 예와 연습이 있고 더욱 완전합니다.
만약 내가 이 채널에 있는 동영상이 매우 유용하다고 생각한다면, 조금도 주저하지 않고 구독하고 그것들을 좋아하세요.다른 유튜버들이 보기에 이것은 더 많은 도움을 줄 수 있을 것 같다.
권장 사항:
  • 다운로드
  • 너의 아름다운 껍데기에 불을 붙여
  • 본 문서의 각 명령
  • 시도
    만약 네가 수동적으로 읽거나 동영상을 본다면, 너는 많은 것을 배우지 못할 것이다.
    본 문서에서 우리는 어떻게 해야 하는지를 함께 이해할 것이다.
  • 착색grep 출력
  • 대소문자 구분 없음 모드
  • 모드 일치 라인
  • 패턴 불일치
  • 라인
  • 과 일치하는 패턴만 출력합니다.
  • 라인 번호
  • 출력 일치 계수
  • 숨겨진 파일 이름
  • 항상 출력 파일 이름
  • 출력 파일 이름만
  • 일치하지 않는 파일 이름만 출력
  • 일치 출력선
  • 일치 전 라인
  • 일치 전후 라인
  • 파일 제외
  • 파이프grep
  • 요약: 그레이프 의 사고 지도
  • 실제 사용grep
  • 색상!


    그림% 1개의 캡션을 편집했습니다.
    grep --color=auto
    
    그러나grep를 사용할 때마다 이 옵션을 사용하는 것은 고통이다.grep의 색상을 항상 선명하게 하려면 다음과 같은 별칭을 정의할 수 있습니다.
    alias grep="grep --color=auto"
    
    그것은 지금 불꽃놀이기다.

    패턴이 일치하는 출력선


    다음은 grep를 사용하는 일반적인 방법입니다.
    grep "<pattern>" <input>
    
    --color은 정규 표현식입니다. <pattern>은 터미널이나 파일에 입력한 내용일 수 있습니다.예를 들면 다음과 같습니다.
    grep "package" pacman.log
    
    다음과 같은 출력이 표시됩니다.

    너는 <input>이 이 두 선의 일부분임을 볼 수 있다.이게 왜 출력이야?정말 불가사의하다!만약 우리가 일상생활에서 이 점을 할 수 있다면 좋겠다.나는 내가 어떤 단어를 여과할지 이미 알고 있다.
    옵션 package--color으로 설정하지 않으면 패턴이 음영처리되지 않습니다.

    패턴이 일치하지 않는 출력 줄


    패턴과 일치하지 않는 행만 내보내는 일치 항목을 auto에 삽입하려면 다음과 같이 v 옵션을 사용합니다.
    grep -v "package" pacman.log
    
    이번에는 모드 -v의 두 줄을 제외한 모든 파일을 출력합니다.

    일치하는 모드만 내보내기

    package은 줄 전체가 아닌 일치하는 항목만 출력하는 것이 유용할 수 있습니다.o 옵션을 사용하여 이러한 이점을 실현할 수 있습니다.
    grep -o "package" pacman.log
    

    라인 번호 내보내기


    행 수와 행 수 -o을 출력하려면 n 옵션을 사용해야 합니다.예를 들면 다음과 같습니다.
    grep -n "package" pacman.log
    
    행 번호는 출력된 각 행의 접두사로 사용됩니다.

    일치하는 수만 내보내기


    옵션 -n과 일치하는 c 계수만 사용할 수 있습니다.
    grep -c "package" pacman.log
    

    대소문자를 구분하지 않는 모드


    기본적으로 모드와 일치하려면 모드의 알파벳이 대문자인지 소문자인지 알아야 합니다.-c 옵션을 사용하면 다음과 같은 걱정 없이 모드와 일치할 수 있습니다.
    grep -i "pacman" *.log
    
    grep에서 여러 파일을 필터할 수 있는 것을 볼 수 있습니다.glob -i은 0자 이상의 문자를 대표하는 특별한 의미를 가지고 있습니다.다시 말하면, 우리는 작업 목록의 모든 파일이 *으로 끝나기를 바란다.다음과 같습니다.
    grep -i "pacman" haskell.log pacman.log
    

    파일 이름


    파일 이름 숨기기


    보시다시피, 여러 개의 파일을 입력으로 사용하면grep는 일치하는 항목의 파일 이름을 출력합니다..log id에 통합하려면 h 옵션을 사용합니다.예를 들면 다음과 같습니다.
    grep -h "package" *.log
    

    항상 출력 파일 이름


    일치하는 위치에서 파일 이름을 출력하려면 입력 파일 하나만 제공하더라도 -h 옵션을 사용할 수 있습니다.여기에는 터미널에서 실행할 수 있는 예가 있습니다.
    grep -H "package" pacman.log
    
    일부 옵션의 경우 대문자 변수는 소문자 변수와 -H, -h과 반대로 표시됩니다.

    파일 이름만 내보내기


    출력 모드와 일치하는 파일 이름만 표시하려면 옵션 -H을 사용합니다.
    grep -l "package" *.log
    

    일치하지 않는 파일 이름만 내보내기


    알 수 있습니다: 옵션 -l 출력 모드가 일치하지 않는 파일 이름만:
    grep -L "package" *.log
    

    경기 주위의 출력선


    이 줄을 일치시키기 전이나 후에 출력하면 위아래 문장을 이해하고 선별 결과를 이해하는 데 도움이 됩니다.

    경기 종료 후 라인 아웃


    일치하는 줄 뒤에 가변 줄 -L을 출력하려면 옵션 A을 사용합니다.
    grep -A 3 "package" pacman.log
    

    시합 전의 출력행


    마찬가지로 -A 행을 일치 전에 출력하려면 B 옵션을 사용합니다.
    grep -B 3 "package" pacman.log
    

    시합 전후의 출력행


    옵션 -B을 사용하여 일치 전후의 행을 출력할 수도 있습니다.
    grep -C 3 "package" pacman.log
    
    이 예에서 -C의 두 번째 일치 항목은 다음 세 줄을 출력하지 않습니다. 일치 항목을 포함하는 줄 뒤의 파일 끝이기 때문입니다.
    너는 도안을 보았니?package after, A efore, B ontext: C!

    파일 제외


    우리는 항상 우리가 필터하고 싶은 파일을grep 입력에 건네주지만, 만약 우리가 몇 개의 파일을 제외한 모든 것을 원한다면?이를 위해 ABC 옵션을 사용할 수 있습니다.
    grep "package" --exclude="pacman.log" *.log
    

    파이프grep


    필터를 하려면 명령의 출력을grep의 입력에 직접 전달할 수 있습니다.실제로 각 CLI에서 파이핑을 사용하여 입력을 수락할 수 있습니다.
    예를 들어, --exclude(내 시스템에서 실행되는 프로세스를 출력하는 CLI)을 실행하면 다음과 같은 결과가 발생합니다.
        PID TTY          TIME CMD
       2026 pts/9    00:11:36 nvim
       2431 pts/11   00:01:11 hugo
       2584 pts/10   00:00:01 tmuxp
       3009 pts/18   00:00:01 nvim
       3241 pts/20   00:00:17 taskell
       3484 pts/22   00:00:11 taskell
       3663 pts/21   00:00:00 nvim
    
    ps 문양만 들어간 라인만 원한다면?다음과 같은 작업을 수행할 수 있습니다.
    ps -a | grep "nvim"
    
    이것은 내가 명령 nvim의 출력을grep의 입력에 제공한다는 것을 의미한다.결과는 다음과 같습니다.
       2026 pts/9    00:11:36 nvim
       3009 pts/18   00:00:01 nvim
       3663 pts/21   00:00:00 nvim
    
    파이프는 명령줄이 이렇게 강한 이유 중의 하나이다. 작은 CLI로 한 가지 일을 할 수 있다. 당신은 미친 결과를 얻을 것이다.

    요컨대 그레이프의 사유도



    이 모든 것을 알게 되어 기쁘지만, 당신은 어떻게 현실 생활에서grep를 사용합니까?다음은 제가 겪은 문제를 보여 주는 영상입니다.grep과 다른 CLI를 사용하여 이 문제를 잘 해결했습니다.

    무쥐화


    Linux 셸을 중심으로 Mouseless Development Environment을 구축하시겠습니까?

    키보드와 마우스 사이를 전환하면 인지 에너지가 소모된다.이 책은 키보드에 손을 얹을 수 있도록 리눅스 기반의 개발 환경을 한 걸음 한 걸음 구축하는 것을 지도할 것이다.
    입력 장치를 처리하는 데 쓰이는 당신의 머리를 그곳에 집중시켜라. 당신이 무엇을 창조했는가.

    좋은 웹페이지 즐겨찾기