Grep 默认颜色选项

Grep 默认颜色选项

grep 是 Linux 中最常用的命令之一。我觉得它的基本功能是在输出行中突出显示您搜索的字符串。这可以通过 --color 选项实现。

每次都输入 --color 很烦人,而且效率不高。有没有办法将 grep 改为 grep --color 的形式?

我尝试编写一个名为grepd并将其添加到我的 PATH 变量中。但脚本对输入不起作用grepd 。请提供任何建议。

#!/bin/bash
grep --color $1 $2

答案1

只需将以下别名添加到 shell 的配置文件中,例如.bashrc.bash_profile(取决于您使用哪个,看这里):

alias grep='grep --color=auto'

您可以简单地将其用作grep

通常不需要编写脚本,因为简单的命令别名就可以完成相同的操作。事实上,如果你想传递更多选项,你的脚本甚至无法工作grep。如果你需要一个可以处理参数的小代码片段,你应该使用函数

答案2

#!/bin/sh
exec grep --color "$@"

这说明了当命令不能按照您喜欢的方式工作时使用 shell 脚本“包装”命令的标准方法。

exec避免了创建额外的进程(一个用于脚本,一个用于 grep)。如果你愿意,可以省略它。

"$@"被脚本的所有参数替换,无论有多少个参数。它正确地保留了带有空格和其他 shell 专用字符的参数。

答案3

尝试放入 export GREP_COLORS='AUTO'你的 ~/.bashrc - 对我来说,它有效。

man grep

       --color[=WHEN], --colour[=WHEN]
          Surround  the  matched (non-empty) strings, matching lines, context lines, file names, line numbers, byte offsets, and separators (for fields and groups of context lines) with escape sequences
          to display them in color on the terminal.  The colors are defined by the environment variable GREP_COLORS.  The deprecated environment variable GREP_COLOR is still supported, but  its  setting
          does not have priority.  WHEN is never, always, or auto.

相关内容