나는 보통 개발할 때 약간의 grep을 수행하고, 항상 찾고 싶지 않은 확장이 있습니다 (* .pyc와 같은).
~ / .egreprc 또는 이와 유사한 것을 생성하고 항상 pyc 파일을 결과로 표시하지 않도록 필터링을 적용 할 수 있습니까?
이것이 가능합니까, 아니면 이런 식으로 grep을 사용하기 위해 별명을 작성하고 grep 대신 별명을 호출해야합니까?
나는 보통 개발할 때 약간의 grep을 수행하고, 항상 찾고 싶지 않은 확장이 있습니다 (* .pyc와 같은).
~ / .egreprc 또는 이와 유사한 것을 생성하고 항상 pyc 파일을 결과로 표시하지 않도록 필터링을 적용 할 수 있습니까?
이것이 가능합니까, 아니면 이런 식으로 grep을 사용하기 위해 별명을 작성하고 grep 대신 별명을 호출해야합니까?
답변:
grep에 대한 rc 파일은 없지만 환경 변수 GREP_OPTIONS
를 공백으로 구분 된 옵션 목록으로 설정하여 모든 grep 명령에 적용 할 수 있습니다. 이를 위해서는 GNU grep (포함되지 않은 Linux, Cygwin 및 기타 시스템에서 구현) 2.4가 필요합니다. 2.4; 이 --exclude
옵션은 GNU grep 2.5의 새로운 기능입니다. 이런 식으로 당신의 ~/.profile
:
export GREP_OPTIONS='--color=auto --exclude=*.pyc --exclude-dir=.git'
이 작업을 수행했지만 기본 옵션없이 grep을 한 번 실행하려면을 실행 grep --color=never
하여 GREP_OPTIONS
변수를 무시하거나 (예 : 색상을 강제로 해제) 변수를 비울 수 GREP_OPTIONS= grep …
있습니다.
또 다른 가능성은 grep의 별명을 정의하는 것입니다. 다음과 같은 변형을 사용합니다.
alias regrep='grep -Er --exclude=*~ --exclude=*.pyc --exclude-dir=.bzr --exclude-dir=.git --exclude-dir=.svn'
GREP_OPTIONS
영향을 미치지 만 grep
별칭은 그렇지 않습니다. 따라서 GREP_OPTIONS
드물게 사용해야합니다. 가장 일반적인 용도는 for --color=auto
이며, 이는 출력이 터미널 인 경우에만 적용되므로 스크립트에서 무해합니다.
ack 은 당신이 원하는 것을 더 할 수 있습니다.
그것은 기본적으로 바이너리 파일을 무시하고 당신이 원하는대로 당신은 다른 파일 형식을 무시하고 그것을 말할 수있는 --notext
, --nohtml
그것은 당신이 당신의 자신의 유형을 사용자 정의 할 수 있도록 너무 rc 파일을 정의 할 수있는 기능이있다 등.
GNU grep
/ egrep
에는 없습니다.
어쨌든 나중에 당신이 당신의 특별한 구성과 잊어 버린 무언가를 찾으려고 할 때 매우 혼란 스러울 수 있기 때문에 어쨌든 특별히 명명 된 별명이나 스크립트가 이것을 원할 것입니다.
GREP_OPTIONS
에서이 ~/.profile
가까이 온다.
--color=auto
!