加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – 为什么在从grep输出创建文件时我会得到一些额外的,奇怪

发布时间:2020-12-15 22:08:35 所属栏目:安全 来源:网络整理
导读:我正在做一个非常基本的命令,从来没有给我带来过麻烦,但现在莫名其妙地回复了不受欢迎的角色. 我在linux上的BASH,只是想搜索目录并创建一个包含与模式匹配的文件名的文件: ls | grep "*.file_ID" my_list.txt …这很好,如果我抓住数据: cat my_list.txt se
我正在做一个非常基本的命令,从来没有给我带来过麻烦,但现在莫名其妙地回复了不受欢迎的角色.

我在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字符?我不知道它们来自哪里,并且需要能够在没有它们的情况下生成文件.

谢谢!

解决方法

Don’t use ls:

printf "%sn" *.file_ID > my_list.txt

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读