我有一个关于删除不可见字符的问题,这些字符只有当我们尝试使用“vi”命令查看文件时才能看到。我们有一个由 Datastage 应用程序生成的文件(源是 DB2 表 -> 目标是 .txt 文件)。文件包含不同数据类型的数据。我遇到的问题是只有 3 列的数据类型定义为 CHAR。
如果您在文本板中打开该文件,您会看到空格。但是,当您在 Unix 上通过 vi 命令查看同一文件时,我们会看到蓝色的 ^@ 字符。我的文件是一个分隔符文件,分隔符为 ^@^ (我知道这听起来有点奇怪)。
我努力了:
-
tr -d [:cntrl:] <Filename >NewFileName
— 仍然不走运 — [分隔符被删除,但空格仍然存在]
-
tr -s "^@" <Filename >NewFilename
— 仍然不走运 — 我看到文件大小减小,但不可见的字符仍然保留。
- 尝试更改分隔符 - 但仍然看到相同的不可见字符。
- Used
sed "s/^@/g/"
(以及其他 sed 命令)<Filename
——还是没有运气。
任何建议都非常感激。我研究过该网站上的帖子,但找不到。如果很简单,请原谅我并分享您的想法。
In vi,NUL字符表示为^@
。要摆脱它们:
tr
Using tr,您应该能够删除 NUL 字符,如下所示:
tr -d '\000' < file-name > new-file-name
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)