Man*_*a G 5 unix invisible sed character tr
我有一个关于删除不可见字符的问题,只有在我们尝试使用"vi"命令查看文件时才能看到这些字符.我们有一个由Datastage Application生成的文件(Source是DB2 Table - > Target是.txt文件).文件具有不同数据类型的数据.我只有3列的问题,其数据类型定义为CHAR.
如果您在Textpad中打开文件,则会看到空格.但是当你通过vi命令在Unix上查看同一个文件时,我们会看到蓝色的^ @字符.我的文件是一个分隔符文件,分隔符为^ @ ^(我知道它有点听起来很奇怪).
我试过了:
tr -d [:cntrl:] <Filename >NewFileName - 仍然没有运气 - [分隔符被删除但空间仍然存在]tr -s "^@" <Filename >NewFilename - 仍然没有运气 - 我看到文件缩小了文件大小,但隐形字符仍然存在.sed "s/^@/g/"(和其他sed命令)<Filename - 仍然没有运气.任何建议都非常感谢.我已经研究过这个网站上的帖子,但我找不到一个.如果这很简单,请原谅我并分享您的想法.
在vi中,NUL字符表示为^@.摆脱它们:
使用tr,您应该能够删除NUL字符,如下所示:
tr -d '\000' < file-name > new-file-name
Run Code Online (Sandbox Code Playgroud)