【发布时间】:2018-07-16 19:30:27
【问题描述】:
我正在尝试替换我的一个文件中的十六进制值。
但是,我不确定如何以正常形式将其写回。我不确定以下是否是正确的方法。我正在将十六进制 25 更改为十六进制 15。
文件 example_2018-02-02-14-51-47_US.txt 采用 UTF-8 格式。
cat example_2018-02-02-14-51-47_US.txt | sed 's/\x25\x15/ /g' | od -x > example_2018-02-02-14-51-47_US_Convert.txt
当我执行 xxd 时,示例文件的结尾是这样的。我正在尝试用十六进制 15 替换末尾的十六进制 25:
05ff020: a289 9585 a2a2 1ed3 f4c2 d7f5 f8d3 f1f3 ................
05ff030: e7c4 1e95 a493 931e d985 98a4 85a2 a396 ................
05ff040: 991e 95a4 9393 1e95 a493 931e 95a4 9393 ................
05ff050: 1ef2 f0f2 f2f2 f2f4 f0f4 f3f1 1ed2 d3e8 ................
05ff060: e6f8 f7f8 c2e6 c1d2 1ee2 8599 a589 8389 ................
05ff070: 9587 1ec2 9696 9240 9686 40c2 a4a2 8995 .......@..@.....
05ff080: 85a2 a21e c689 9985 1ec2 a4a2 8995 85a2 ................
05ff090: a240 d6a6 9585 99a2 1e95 a493 931e 95a4 .@..............
05ff0a0: 9393 1e95 a493 931e f0f0 f0f5 1ec9 d31e ................
05ff0b0: f0f0 f0f0 f0f0 f0f0 f0f0 f0f0 f3f5 f825 ...............%
【问题讨论】:
-
试试
s/\x25/\x15/g -
你什么时候做xxd?所以你实际上是在尝试替换二进制文件中的值,而不是“十六进制字符”,对吗?
-
是的,我正在尝试替换实际的十六进制值
-
s/\x25/\x15/有效。请参阅下面的答案,它表明文件中二进制数据的最小示例可与s///一起使用。其他事情正在发生。您的文件实际上是二进制文件吗?你有一个.txt分机。 -
所以你想为
NACK更改一个ascii '%'?它总是文件的最后一个字节吗?