您好我正在使用AWK生成一堆提交到我们的群集。AWK或bash配置文件将不需要的颜色代码添加到标准输出
$ls myfiles* | awk '{for(i=1;i<101;i++){print("qsub -d `pwd` -v FILE="$1",NUM="i" -N "$1" run.qsub")}}'
产生类似的东西 - 这是在awk的声明取代
qsub -d `pwd` -v FILE=myfiles100.txt,NUM=100 -N myfiles100.txt run.qsub
除了变量$ 1(myfiles100.txt),在绿色的语法高亮显示。我不知道这是由于我的bash配置文件还是AWK的东西,但我从来没有见过它。当我将其重定向到stdout时,问题就出现了。
$ls myfiles* | awk '{for(i=1;i<101;i++){print("qsub -d `pwd` -v FILE="$1",NUM="i" -N "$1" run.qsub")}}' > somefile.txt
当我打开somefile.txt
qsub -d `pwd` -v FILE=^[[0m^[[32mmyfiles100.txt^[[0m,NUM=100 -N ^[[0m^[[32myfiles100.txt^[[0m run.qsub
颜色代码插入为好,但这会导致混乱,当我执行这些作业调度程序。我可以用一个很好的sed命令删除颜色代码。
sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[mGK]//g"
但必须有一些设置我失踪使事情变得更容易。
几乎肯定是'ls'的env var。使用'ls --color = never -other opts'。祝你好运。 – shellter 2014-10-29 22:00:28
谢谢!当然这是问题所在。全局bash有ls颜色选项集 – jwillis0720 2014-10-29 22:06:45