【发布时间】:2011-12-21 22:47:36
【问题描述】:
我正在使用 Mac ssh 连接到一个无头 RedHat 盒子,我需要创建一个文件列表供下游程序操作。
当我重定向ls 的输出时,创建的文件有一堆转义字符,我的下游脚本无法正确读取文件名。当我创建并cat 文件时,一切看起来都很好:
sdt5z@franklin:~/cufflinks$ ls *.pbs
01_SL8426.pbs 03_SL8428.pbs 09_SL8891.pbs
02_SL8427.pbs 04_SL8429.pbs
sdt5z@franklin:~/cufflinks$ ls *.pbs > myfiles.txt
sdt5z@franklin:~/cufflinks$ cat myfiles.txt
01_SL8426.pbs
02_SL8427.pbs
03_SL8428.pbs
04_SL8429.pbs
09_SL8891.pbs
但是,如果我在 vim 中打开文件,它就是这个样子(在我的终端模拟器中,所有的小 ^[[ 和 ^[ 字符都是蓝色的):
1 ^[[0m^[[0m01_SL8426.pbs^[[0m
2 ^[[0m02_SL8427.pbs^[[0m
3 ^[[0m03_SL8428.pbs^[[0m
4 ^[[0m04_SL8429.pbs^[[0m
5 ^[[0m09_SL8891.pbs^[[0m
6 ^[[m
~
~
~
~
运行文件命令显示该文件有转义序列。
sdt5z@franklin:~/cufflinks$ file myfiles.txt
myfiles.txt: ASCII text, with escape sequences
我的问题是,我怎样才能非常简单地 ls 文件,将它们重定向到文件,而不使用任何转义字符?首先是什么原因造成的?
谢谢。 myfiles.txt:ASCII 文本,带有转义序列
【问题讨论】:
-
感谢大家,Ivan、Paul 和 idoimaging。是的,我很久以前将 ls 别名为 ls --color=always ,并且完全忘记了它。 \ls 可以解决问题。
标签: linux shell unix text escaping