来自 ls 命令的额外转义字符使生活变得艰难
Extra escape characters from ls command making life hard
我想发出一个简单的 ls 命令并将结果存储在一个文件中:
ls -ltr equ* > ffile
显示的文件名附加了额外的转义字符。这些在某些实用程序(如 vi)下明显显示,而在其他实用程序(如 more)下根本不显示。示例:
-rw------- 1 me 9607LPET 72680 Apr 10 12:00 ^[[0m^[[00mequ_00020.dat^[[0m
-rw------- 1 me 9607LPET 72680 Apr 10 12:00 ^[[00mequ_00021.dat^[[0m
-rw------- 1 me 9607LPET 356110 Apr 10 12:00 ^[[00mequ_00065.dat^[[0m
-rw------- 1 me 9607LPET 60253 Apr 10 12:00 ^[[00mequ_00067.dat^[[0m
-rw------- 1 me 9607LPET 83656 Apr 10 12:00 ^[[00mequ_00068.dat^[[0m
无论如何,几乎所有我可能用来处理此文件列表的工具都能检测到这些字符。它们使处理文件名变得非常困难。
我该如何摆脱它们?他们在那里的目的是什么?
编辑:这个问题已被标记为另一个问题的重复,该问题也涉及在 ls
输出中去除颜色。但是,我认为摆脱颜色是解决两个不同问题的单一方法。另一个问题首先是关于颜色的。这个不是。用户可能遇到了我刚刚遇到的确切问题,但仍然不知道他应该查看 ls
输出中涉及颜色的其他问题。我当然是这些用户之一。因此,我坚持认为这不是另一个问题的正确副本,这个问题应该作为关于一个独特问题的独特问题保留,因为它实际上就是这样。
这些是打开和关闭颜色的 ANSI 转义序列。尝试添加
--color=never
到ls
关闭着色。
通常,您应该使用 --color=auto
当输出不是终端时应该关闭颜色。
我想发出一个简单的 ls 命令并将结果存储在一个文件中:
ls -ltr equ* > ffile
显示的文件名附加了额外的转义字符。这些在某些实用程序(如 vi)下明显显示,而在其他实用程序(如 more)下根本不显示。示例:
-rw------- 1 me 9607LPET 72680 Apr 10 12:00 ^[[0m^[[00mequ_00020.dat^[[0m
-rw------- 1 me 9607LPET 72680 Apr 10 12:00 ^[[00mequ_00021.dat^[[0m
-rw------- 1 me 9607LPET 356110 Apr 10 12:00 ^[[00mequ_00065.dat^[[0m
-rw------- 1 me 9607LPET 60253 Apr 10 12:00 ^[[00mequ_00067.dat^[[0m
-rw------- 1 me 9607LPET 83656 Apr 10 12:00 ^[[00mequ_00068.dat^[[0m
无论如何,几乎所有我可能用来处理此文件列表的工具都能检测到这些字符。它们使处理文件名变得非常困难。 我该如何摆脱它们?他们在那里的目的是什么?
编辑:这个问题已被标记为另一个问题的重复,该问题也涉及在 ls
输出中去除颜色。但是,我认为摆脱颜色是解决两个不同问题的单一方法。另一个问题首先是关于颜色的。这个不是。用户可能遇到了我刚刚遇到的确切问题,但仍然不知道他应该查看 ls
输出中涉及颜色的其他问题。我当然是这些用户之一。因此,我坚持认为这不是另一个问题的正确副本,这个问题应该作为关于一个独特问题的独特问题保留,因为它实际上就是这样。
这些是打开和关闭颜色的 ANSI 转义序列。尝试添加
--color=never
到ls
关闭着色。
通常,您应该使用 --color=auto
当输出不是终端时应该关闭颜色。