UNIX:如果管道输入较少,则输出奇怪的输出

时间:2010-10-09 15:14:25

标签: unix command

如果我用管道执行ls命令到更少,我得到奇怪的输出

ESC[00mESC[00mfile1.ccESC[00m
ESC[00file2.ccESC[00m
ESC[00file3.ccESC[00m

(表示介于两者之间的ESC字符串)。

没有ls,输出为:

file1.cc    file2.cc    file3.cc

如何解决这个问题?

4 个答案:

答案 0 :(得分:4)

我猜你通过别名,函数或--color=always环境变量和ls发送颜色指令,LS_COLORS设置了ls选项到非终端(即你的管道到less)。

答案 1 :(得分:3)

使用less -R或将LESS环境变量设置为-R

答案 2 :(得分:1)

您所看到的是用于设置颜色的ANSI转义序列。运行ls --color=no

答案 3 :(得分:1)

您需要使用less -r减少输出原始控制字符。