我的 .bash_profile 上有一个grep
别名,用于显示行号并为匹配项着色。这是我的grep
结果的一个例子:
$ grep test filename
1:This is a test (to be removed)
1:This is a second test (to be removed)
这是我的别名:
alias grep="grep --color"
grep
在脚本上执行命令时,有什么方法可以防止使用该别名吗?
如果我在脚本中尝试以下命令:
grep test filename | sed -E 's/^(.*) \(.*$/\1/g'
\grep test filename | sed -E 's/^(.*) \(.*$/\1/g'
command grep test filename | sed -E 's/^(.*) \(.*$/\1/g'
/usr/bin/grep test filename | sed -E 's/^(.*) \(.*$/\1/g'
所有结果如下:
1:This is a test
1:This is a second test
得到以下结果将会很棒:
This is a test
This is a second test
我正在使用grep (GNU grep) 2.21
和GNU bash, version 4.3.33
。
答案1
使用\grep
。
(Bourne/POSIX) shell 规范规定,当引用命令字的任何字符时,会抑制交互式 shell 中的别名替换。