我正在执行一个非常基本的命令,过去从未给我带来麻烦,但现在却莫名其妙地返回了不需要的字符。
我在 linux 上的 BASH 中,只想搜索一个目录并创建一个包含与模式匹配的文件名的文件:
ls | grep "*.file_ID" > my_list.txt
...这很好用,如果我收集数据:
cat my_list.txt
seriesA.file_ID
seriesB.file_ID
seriesC.file_ID
但是,当我尝试将此文件提供给下游进程时,我不断收到一个奇怪的错误,好像该文件没有正确格式化为文件名列表。当我在 vim 中打开文件以显示任何不必要的字符时,我发现文件实际上如下所示:
vi my_list.txt
^[[00mseriesA.file_ID^[[00m
^[[00mseriesB.file_ID^[[00m
^[[00mseriesC.file_ID^[[00m
出于某种原因,每一行都以字符开头和结尾^[[00m
。如果我删除这些字符,所有下游流程都可以正常工作。但是,我需要让我的脚本自动创建这样一个文件列表,所以我不能继续手动删除这些字符。
有谁知道是什么产生了^[[00m
角色?我不知道它们来自哪里,并且需要能够在没有它们的情况下生成文件。
谢谢!