如何用sed进行十六进制替换

现网teastore导出的数据文件,通过vim和less查看时,都发现是乱码,通过more查看时,部分内容不能正常显示,通过cat命令查看时会把相应的乱码部分自动处理掉。某业务人员想通过 fileio进行读取操作时,取的内容和vim 、less看到的效果一样,因为乱码位会占用一位。具体见下图:

正常复制上面的乱码符号,通过sed进行无法正常替换。此时可以换用16进制的替换,先用hexdump -C 命令进行查看,具体如下:

通过上面可以找到相应的乱码对应的十六制是多少。在通过sed替换时,通过在替换16进制数字前增加x即可。类似命令如下:

sed -i 's/x40x1f//g' 1.test  sed -i 's/x1f//g' 1.test  sed -i 's/x00x00x00x01//g' 1.test  sed -i 's/x00x00x00x03//g' 1.test  

替换完成后,再查看就正常了:

[root@read1-sd tmp]# less 1.test  0|804690908461101|31205340930||80469090846@  0|804205542061101|30607176423||80420554206@  0|804571381121101|32017234631||80457138112@  0|801784713021101|41049442587||80178471302@  0|802643435491101|40081855639||80264343549@  

本文原创地址:https://www.linuxprobe.com/sed-16-replace.html编辑:张雄,审核员:暂无

本站所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如果侵犯你的利益,请发送邮箱到 [email protected],我们会很快的为您处理。
超哥软件库 » 如何用sed进行十六进制替换