GREP_OPTIONS =' - color = always'导致非打印字符

Ke *_* Li 2 grep non-printing-characters

我的bash版本:

GNU bash, version 3.2.49(22)-release (i686-pc-cygwin)
Copyright (C) 2007 Free Software Foundation, Inc.
Run Code Online (Sandbox Code Playgroud)

在我的.bashrc中,我有:

export GREP_OPTIONS='--color=always'
Run Code Online (Sandbox Code Playgroud)

要重现该问题,请创建一个文件test.txt并写下一些行:

test1: apple
test2: orange
test3: cherry
Run Code Online (Sandbox Code Playgroud)

在bash中,做一个grep:

grep "test" test.txt > 1
Run Code Online (Sandbox Code Playgroud)

当我检查结果时,我会得到这样的结果:

~ > cat -v 1
^[[01;31m^[[Ktest^[[m^[[K1: apple
^[[01;31m^[[Ktest^[[m^[[K2: orange
^[[01;31m^[[Ktest^[[m^[[K3: cherry
Run Code Online (Sandbox Code Playgroud)

对这个问题有什么想法吗?顺便说一下,我设置了fileformats = unix.

Jon*_*oni 9

您看到的字符对应于更改终端中文本颜色的代码.通常,grep只有在输出到交互式终端时才会产生颜色.要做到这一点,请改变

export GREP_OPTIONS='--color=always'
Run Code Online (Sandbox Code Playgroud)

export GREP_OPTIONS='--color=auto'
Run Code Online (Sandbox Code Playgroud)