我有一堆文本文件,总是附带一个备份文件:
文件.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.
答案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
然后将创建的文件打印为文本(使用预先格式化的换行符和连字符