grep 输出重定向到文件生成二进制文件

grep 输出重定向到文件生成二进制文件

foo我有一个包含内容的文件:

foo

然后我执行:

grep "foo" foo > bar

生成一个bar“二进制”(根据文件浏览器)文件,其内容

[01;31m[Kfoo[m[K

如果我尝试同样的awk

awk '{ print $1 }' foo > bar

生成一个包含内容的普通文本文件

foo

我觉得我在这里遗漏了一些明显的东西,这正常吗?为什么(至少)两个命令之间存在差异。

答案1

问题很简单。我的标志grep中有一个别名:bashrc--color=always

alias grep="grep --color=always"

解决方案只是取消命令的别名

unalias grep

并从中删除别名.bashrc,然后将其作为来源. .bashrc

相关内容