我有EBCDIC格式的大型机文件,我想将这些文件转换为ASCII格式。
我曾尝试使用python 2.6将EBCDIC转换为ASCII,但存在很多问题,例如压缩字段未转换且记录计数增加。
有什么方法可以将具有压缩字段的EBCDIC文件转换为ASCII格式。
答案 0 :(得分:2)
如果已经下载了文件,则可以使用命令行在Linux或MacOS计算机中将其从EBCDIC轻松转换为ASCII。
为此,您需要使用dd
命令。
这里简要介绍了它使用的一些参数:
dd [bs=size] [cbs=size] [conv=conversion] [count=n] [ibs=size] [if=file] [imsg=string] [iseek=n] [obs=s] [of=file] [omsg=string] [seek=n] [skip=n]
除了上述参数以外,还有更多参数可用来检查所有可用参数,只需执行命令man dd
,它将显示所有其他可用参数以及每个参数的说明。
在您的情况下,您应该从以下内容开始:
dd conv=ascii if=EBCDIC_file.txt of=ASCII_file.txt
其中EBCDIC_file.txt是输入的EBCDIC文件的文件名,而ASCII_file.txt将是作为输出创建的文件,所有字节都从EBCDIC转换为ASCII。
同样,您可以使用conv=ebcdic
将文件从ASCII转换为EBCDIC,以进行相反操作。
以下是网上dd
的手册页:https://www.man7.org/linux/man-pages/man1/dd.1.html
当您提到文件压缩时,是指整个文件都是从大型机压缩的吗?可能是TERSED(通过在大型机上使用terse实用程序)。在这种情况下,有一个可在DOS,Linux,MacOS,AIX和其他操作系统上运行的terse的公共版本。在cbtape网站上可用:http://www.cbttape.org/ftp/cbt/CBT892.zip
答案 1 :(得分:1)
某些选项
如果一次关闭RecordEditor,应该可以使用Cobol Copybook编辑文件。它还可以生成JRecord代码来读取文件。
如果文件中只有一个记录类型,CobolToCsv可以使用Cobol Copybook将文件转换为CSV。
例如,使用CobolToCsv将Cobol数据文件转换为Csv(单一记录类型):
java -jar ../lib/Cobol2Csv.jar -I In/DTAR020.bin -O Out/o_DTAR020_space.csv ^
-C DTAR020.cbl ^
-Q DoubleQuote -FS Fixed_Length ^
-IC CP037 -Delimiter ,
哪里