如何在 Windows-10 Ubuntu WSL 应用程序上更改“grep”配色方案

如何在 Windows-10 Ubuntu WSL 应用程序上更改“grep”配色方案

我想改变grep我的 Windows Linux 子系统(WSL、Windows-10 计算机上的 Ubuntu 应用程序)上结果的配色方案。

我的.bashrc文件包含以下条目:

alias grep='grep --color=auto'

环境变量GREP_COLORGREP_COLORS都是空的:

Prompt> echo $GREP_COLOR

Prompt> echo $GREP_COLORS

=> two times an empty result.

我的grep版本:

Prompt> grep --version
grep (GNU grep) 3.4
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

提出这个问题的原因是grep "text" *给出以下结果:

file1.txt : here is text
file2.txt : here is text too

文件的名称(file1.txt 和 file2.txt)都是紫色的,在黑色背景下不容易看清:

截屏

有人知道怎么做这个吗?

答案1

要更改文件名color,修改fn下面一行的值:

export GREP_COLORS='ms=01;31:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36'

根据颜色图表中提到的询问 Ubuntu 帖子@DavidPostill 在评论中链接。

例如:

export GREP_COLORS='ms=01;31:mc=01;31:sl=:cx=:fn=31:ln=32:bn=32:se=36'

将把文件名更改为红色。

另外,从您的评论来看:

如果没有导出,我宁愿那些东西还没有被保存

这并不是完全正确的export工作方式。 export在 shell 中设置一个变量(就你的情况而言,很可能是 Bash)意味着你从中启动的任何子进程shell 实例将接收导出的值。由于grep是子进程,因此需要修改变量export才能获取更新的值。如果您没有export该值,则它仅存在于您的 shell 本地,grep即使从 Bash 启动,也不会看到它。

然而,一旦退出 shell,exported 值就是不是已保存。

要永久保存该值,正如链接的帖子在最后提到的,您需要将命令添加export GREP_COLORS=...到您的~/.bashrc

相关内容