grep의 기초 지식 - 원하는 모든 것을 필터링
8382 단어 commandlinemouselessproductivity
GNU grep이 있는지 확인하려면 터미널
grep --version
에서 실행할 수 있습니다.만약 GNU 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을 구축하시겠습니까?
키보드와 마우스 사이를 전환하면 인지 에너지가 소모된다.이 책은 키보드에 손을 얹을 수 있도록 리눅스 기반의 개발 환경을 한 걸음 한 걸음 구축하는 것을 지도할 것이다.
입력 장치를 처리하는 데 쓰이는 당신의 머리를 그곳에 집중시켜라. 당신이 무엇을 창조했는가.
Reference
이 문제에 관하여(grep의 기초 지식 - 원하는 모든 것을 필터링), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/phantas0s/the-basics-of-grep-filtering-all-the-content-you-want-429m텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)