gpt4 book ai didi

unix - 删除 Unix 文件中的 ^@ 字符

转载 作者:行者123 更新时间:2023-12-04 17:46:45 25 4
gpt4 key购买 nike

我有一个关于删除不可见字符的问题,只有当我们尝试使用“vi”命令查看文件时才能看到这些字符。我们有一个由 Datastage 应用程序生成的文件(源是一个 DB2 表 -> 目标是一个 .txt 文件)。文件具有不同数据类型的数据。我只遇到了 3 列的问题,这些列的数据类型定义为 CHAR。
如果您在 Textpad 中打开文件,您会看到空格。但是当你在 Unix 上通过 vi 命令查看同一个文件时,我们会看到蓝色的 ^@ 字符。我的文件是一个分隔 rune 件,分隔符为 ^@^ (我知道这听起来有点奇怪)。
我试过了:

  • tr -d [:cntrl:] <Filename >NewFileName — 仍然没有运气 — [删除了分隔符但保留了空格]
  • tr -s "^@" <Filename >NewFilename — 仍然没有运气 — 我看到文件减小了文件大小,但不可见字符仍然存在。
  • 尝试更改分隔符 - 但仍然看到相同的不可见字符。
  • 二手 sed "s/^@/g/" (和其他 sed 命令)<Filename ——仍然没有运气。

  • 任何建议都非常感谢。我研究了这个网站上的帖子,但我找不到一个。如果这很简单,请原谅我并分享您的想法。

    最佳答案

    vi , NUL 字符表示为 ^@ .要摆脱它们:

    tr

    使用 tr ,您应该能够删除 NUL 字符,如下所示:

    tr -d '\000' < file-name > new-file-name

    关于unix - 删除 Unix 文件中的 ^@ 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31846045/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com