我想改变grep
我的 Windows Linux 子系统(WSL、Windows-10 计算机上的 Ubuntu 应用程序)上结果的配色方案。
我的.bashrc
文件包含以下条目:
alias grep='grep --color=auto'
环境变量GREP_COLOR
和GREP_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,export
ed 值就是不是已保存。
要永久保存该值,正如链接的帖子在最后提到的,您需要将命令添加export GREP_COLORS=...
到您的~/.bashrc
。