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

标签 grep non-printing-characters

我的 bash 版本:

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

在我的 .bashrc 中,我有:

export GREP_OPTIONS='--color=always'

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

test1: apple
test2: orange
test3: cherry

然后在 bash 中执行 grep:

grep "test" test.txt > 1

当我检查结果时,我得到如下信息:

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

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

最佳答案

您看到的字符对应于更改终端中文本颜色的代码。通常您希望 grep 仅在其输出进入交互式终端时才生成颜色。为此,更改

export GREP_OPTIONS='--color=always'

export GREP_OPTIONS='--color=auto'

关于GREP_OPTIONS ='--color=always' 导致非打印字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17640896/

相关文章:

shell - 在 'grep' 结果中包含 header

bash - 仅 grep 文本文件

bash - bash 脚本中的 grep + Jenkins

linux - 如何在句子中搜索类似 Twitter 的名称?

MySQL group_concat SEPARATOR char 或 ascii

java - java中的可打印字符

html - HTML 中字符串的不可见分隔符

regex - 如何使用 perl “apply” 退格字符

c++ - 如何找到声明命名空间变量的文件?