grep 명령을 grep -n --colour로 바꾸시겠습니까?


17

나는 게으 르기 때문에 .. 언제든지 grep을 사용하고 싶을 때 grep -n --colour가 되길 원합니다. 이것을 영구적으로 매핑하는 방법이 있습니까?


6
"게 으르니까 ..."+1 개발자로서 경력을 고려한 적이 있습니까? :)
Dr Hannibal Lecter

답변:


31

$ HOME / .bashrc 파일에서 다음을 추가하십시오.

export GREP_OPTIONS="-n --color"

이것은 egrepgrep을 사용하는 별칭에서도 작동 합니다.

업데이트 : GREP_OPTIONS는 grep 2.21에서 더 이상 사용되지 않으며이 솔루션을 사용하면 다음 경고가 표시됩니다.

grep: warning: GREP_OPTIONS is deprecated; please use an alias or script

따라서 최선의 해결책은 그의 답변에서 maco의 조언을 따르는 입니다. 또는 기본적으로 컬러로 출력되는 ag 사용으로 전환하십시오 .


존경.
myusuf3

4
존중하지만 공감하지 마십시오. ;-)
richq

1
파이프 뒤에는 별명을 사용할 수 있습니다. 그들은 단지 재귀하지 않습니다.
maco

1
이봐, 난 upvoted. 나는 이것을 별칭보다 더 좋아.
Dmitriy Likhten

@ marco : 당신이 맞습니다 (bash)-나는 그들이 할 수없는 csh를 생각하고있었습니다. 죄송합니다!
richq

29

~ / .bash_aliases 편집 다음과 같은 줄을 추가하십시오.

alias grep='grep -n --color'

~ / .bash_aliases는 ~ / .bashrc에 의해 자동으로 포함됩니다


8
또는 .profilebash뿐만 아니라 모든 쉘에서 작동 하려면 라인을 추가하십시오 .
LassePoulsen

1
xargs에서는 작동하지 않습니다. 예 :find /usr/share -name '*.txt' |xargs grep testing
rfabbri

2

별명을 정의하는 홈 디렉토리에있는 .bashrc 파일을 수정할 수 있습니다.이 설정은 기본 설정을 대체합니다.

별칭 grep = 'grep -n-색상'

변경 후 터미널을 열 때만 파일을 읽으므로 터미널을 닫고 다시여십시오.

.bashrc 파일을 살펴보면 다음과 같은 기본 별칭이 더 있습니다.

별명 ll = 'ls -l'

별명 la = 'ls -A'

별명 l = 'ls -CF'


1

다른 답변에 언급 된 별칭 외에도 스크립트를 만듭니다. 별명 자체가 항상 작동하지는 않으며, 스크립트 레이어는 사람이 읽을 수있는 출력을하기에 충분히 빠릅니다.

다음과 같이 짧은 이름을 선택하십시오 cgrep.

#!/bin/sh
grep --color -n "$@"

당신의 경로에 그것을 말하십시오 ~/bin(UPE를 읽는다면 이것은 당신의 경로에 있습니다 :). 그런 다음 이런 것들이 작동합니다 :

find /usr/share -name '*.txt' | xargs cgrep testing

나는 여전히 행복하지 않아서 cgrep을 선택적으로 입력하지 않고 터미널에 stdout을 할 때 grep이 항상 색상을 나타내기를 원했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.