如何用十六进制的其他字符替换char

Posted

技术标签:

【中文标题】如何用十六进制的其他字符替换char【英文标题】:how to replace char with other in hexdecimal 【发布时间】:2017-11-14 10:55:17 【问题描述】:

我是使用大型机的新用户,我有一个文件,我需要更改所有点 '.'在有空格的文件中,我试图在命令上写这个语句

change X'05' X'40' all  

在我将文件转换为十六进制后,它不起作用。 请问如何以简单的方式更改文件中所有带空格的点?

【问题讨论】:

super user您将有更多机会 【参考方案1】:

点是不可显示的字符。您可以在 ISPF 编辑器中使用图片字符串匹配它们(我假设您正在尝试使用它来编辑文件?)

试试命令

change p'.' ' ' all

“p'.'”部分将匹配任何不可显示的字符并将其更改为空白。

【讨论】:

【参考方案2】:

上面的汉斯回答肯定会将任何不可显示的字符更改为空格。但是,您需要确保您确实想要将所有不可显示的字符更改为空格。打开 HEX 以查看实际数据。然后你可以做一个 F p'。在更改之前找到不可显示的字符。浏览将不可显示的字符显示为一个点。但是,出于显示目的,Edit 会将值替换为属性,这使您无法键入数据。您必须打开 HEX 模式才能手动修改不可显示的值,或者在尝试时使用 Change 命令。通常,从 x'00' - x'3F' 的任何十六进制值都是不可显示的。所以一个

CP'.' X'40' 全部

会将这些值中的每一个修改为一个空格。根据文件,这可能是可取的,也可能是不可取的。

【讨论】:

以上是关于如何用十六进制的其他字符替换char的主要内容,如果未能解决你的问题,请参考以下文章

如果源字符串包含特殊字符,如何用其他字符串替换字符串[重复]

在C++中,如何用不同长度的字符串替换一个命令行参数。

如何用同一数据框中其他列的实际列值替换一列中的字符串值?

处理c字符串时如何用当前输入替换用户的第一个输入

Vim 用 unicode 字符替换

如何用一个字符替换两个字符?