Chinaunix

标题: shell 16进制编辑的问题 [打印本页]

作者: XQKA    时间: 2014-05-09 00:35
标题: shell 16进制编辑的问题
有个oracle导出的dump文件,无法再导回oracle

我在AIX上用strings查看文件时,发现一些数据是黑色的方块,然后用UE查看这些方块
是0D 0D 0A或者0D 0A
这就是回车符的问题,可能开发人员在将AIX下导出的dump文件ftp下载到本地的时候没有使用binary模式,
那么,现在我该如何将0D 0A还原成0D呢?


AIX上没有dos2unix
我试了命令
perl -pe 's/\x0a//g' T1.dmp >Tr.dmp
没有成功--strings还是发现黑块,而且无法导入
其他的sed 's/^M//'都试过,没成功



作者: XQKA    时间: 2014-05-09 00:37
cat T.dmp | tr -d "^M" > Tr.dmp也试过了
作者: XQKA    时间: 2014-05-09 00:40
本帖最后由 XQKA 于 2014-05-09 00:40 编辑

sed 's/\x0a//g' T.dmp >Tr.dmp
也试过了。。。
作者: q1208c    时间: 2014-05-09 08:04
可否贴上几行数据? 十六进制的就行,
比如

0E 0F 0X 0D 0A

这样.
作者: jason680    时间: 2014-05-09 08:26
回复 1# XQKA

Why to remove 0x0a that is New-line for Unix text file?

$ echo 123 | hexdump -C
00000000  31 32 33 0a                                       |123.|
00000004

   
作者: XQKA    时间: 2014-05-09 14:31
hi,

是我的方法不对,
我看到的黑块是用strings看到的,然后把strings的输出拷贝UE,观察这些黑块,看到的是0D 0A
可能这种方法观察dump文件是错误的。
我将dump文件切出一小部分(head,tail的方法),用UE打开它,却没有发现0D 0A

谢谢各位的参与!




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2