标题未知的文本文件无法正确打印

标题未知的文本文件无法正确打印

我有一堆文本文件,总是附带一个备份文件:

文件.TXT
文件.BAK

*.TXT文件包含如下标题:

.V3 PL=62 MB=1 MT=1 DR=TMTYM FL=0 FT=0 #

使用I getä ö ü打印到命令行时,无法识别德语等特殊字符。cat��

该文件包含以下格式的脚注:

.FN 4
 &&FN&

有谁知道使用什么程序来创建这些文件? (猜测是来自MS-DOS时代)以及任何工具,将它们转换为任何可读格式 text/markdown/tex/LibreOffice?

file -i file.TXT印刷:OTT3.TXT: application/octet-stream; charset=binary

od -tc < OTT3.TXT | head印刷:

0000000   .   V   3           P   L   =   6   2                   M   B
0000020   =   1                       M   T   =   1                    
0000040   D   R   =   T   M   T   Y   M                                
0000060           F   L   =   7   0                   F   T   =   0    
0000100                   #  \r  \n   .   F   [  \r  \n 377  \r  \n   .
0000120   F   N       1  \r  \n   #   A   L       N  \r  \n   #   A   U
0000140       B  \r  \n 006 001   R   F  \a   0   9  \r  \n  \b   &   &
0000160   F   N   &  \b   D   a   s       d   e   r       H   a   u   p
0000200   t   m   a   n   n       d   e   n       S   c   h   a   u   p
0000220   l   a   t   z       d   e   r       H   a   n   d   l   u   n

chardetect file.TXT印刷:

OTT3.TXT: Windows-1254 with confidence 0.6400783871057183

如果我尝试pandoc用于转换,我会得到:

UTF-8 decoding error in OTT3.TXT at byte offset 76 (ff).
The input must be a UTF-8 encoded text.

我将其中一个文件上传到 github

答案1

您提供的文件可能是使用 WordStar for DOS v3 生成的:

  • 文件以 .V3 开头

  • 标题行可能意味着(只有我可以解密的条目)

    • PL=65 : 页长为65行
    • MB=1 : 底部边距为 1 行
    • MT=1 : 顶部边距为 1 行
  • 使用 DOS 换行符作为段落分隔符

  • 以 CP850 (DOS) 编码的德语变音符号

  • 使用 8d0a 组合进行常规换行

  • 使用 1f 表示活动连字符

  • 没有默认的文件扩展名,因此用户选择自己的文件扩展名(“.txt”经常使用)

  • 默认情况下以“.bak”扩展名保存备份副本

  • 使用 1a 来标记文件结尾

还有一些使用的其他控制字符但这里没有列举的都是合理的

对于您链接到的文件,您可以尝试以下操作:

cat OTTONEN.TXT | tr -d '\001\006\007\032\215' | tr '\037' '-' | dos2unix | iconv -f cp850 | sed -e '/^\(.V3\|#A[LU]\|.LS\|RD[0-9]\)/d' > OTTONEN2.txt

然后将创建的文件打印为文本(使用预先格式化的换行符和连字符

相关内容