2013-07-14 18 views
1

내 bash는 버전을 야기 몇 줄 TEST.TXT 파일 및 쓰기 :GREP_OPTIONS = '색상 = 항상은'비 인쇄 문자

:
test1: apple 
test2: orange 
test3: cherry 

그리고 bash는

는 GREP을

~ > cat -v 1 
^[[01;31m^[[Ktest^[[m^[[K1: apple 
^[[01;31m^[[Ktest^[[m^[[K2: orange 
^[[01;31m^[[Ktest^[[m^[[K3: cherry 

이 문제에 대한 어떤 생각 : 나는 결과를 확인할 때 3,691,363,210

grep "test" test.txt > 1 

, 나는 이런 식으로 뭔가를 얻을? btw, 나는 fileformats = unix를 설치했습니다.

답변

8

표시되는 문자는 터미널에서 텍스트 색상을 변경하는 코드에 해당합니다. 일반적으로 grep은 출력이 대화식 터미널로 전송 될 때만 색을 생성하려고합니다. 이를 위해 @Joni에 의해 지적 당신이 경우 (그리고 경우에만) 문자열을 일치 강조 할 것이다 '자동', 출력과 '항상'교체 할 필요가

export GREP_OPTIONS='--color=always' 

export GREP_OPTIONS='--color=auto' 
+0

이 도움이됨을 발견했습니다. 그러나 .... GREP_OPTIONS에 대한 문서를 인용하기 만하면 : "이 변수는 명시 적 옵션 앞에 놓이는 기본 옵션을 지정합니다.이 옵션은 이식 가능한 스크립트를 작성할 때 문제를 일으킬 수 있으므로 grep의 다음 릴리스에서 제거 될 것입니다. grep이 사용되면 경고합니다. 대신에 별칭 또는 스크립트를 사용하십시오. " 출처 : http://www.gnu.org/software/grep/manual/html_node/Environment-Variables.html – jonS90

1

에 변경 터미널에 직접 쓰여지고 해당 터미널은 컬러 출력을 표시 할 수 있습니다. 그렇지 않으면 지저분한 문자로 출력물을 지울 수 없습니다.

그러나, 행동 기본을 만들 수있는 더 좋은 방법은에 투입하는 것입니다 귀하의 .bash_profile (또는 .bashrc, 또는 사용자 정의 설정을 유지 whereever) :

# grep auto colouring 
my_grep_options=(--colour=auto) 
alias grep='grep $my_grep_options' 

항상 그렙 전화를 대체합니다 그 preprepared 버전으로, 그래서 때마다 당신은 입력 :

grep 
가로 대체됩니다

:

grep --colour=auto