![查看包含 DOS 文本(方框图字符、CRLF 行终止符)和转义序列的文件](https://linux22.com/image/28670/%E6%9F%A5%E7%9C%8B%E5%8C%85%E5%90%AB%20DOS%20%E6%96%87%E6%9C%AC%EF%BC%88%E6%96%B9%E6%A1%86%E5%9B%BE%E5%AD%97%E7%AC%A6%E3%80%81CRLF%20%E8%A1%8C%E7%BB%88%E6%AD%A2%E7%AC%A6%EF%BC%89%E5%92%8C%E8%BD%AC%E4%B9%89%E5%BA%8F%E5%88%97%E7%9A%84%E6%96%87%E4%BB%B6.png)
我在从某个废弃软件网站下载的旧 Dos 游戏的存档中偶然发现了一个奇怪的文本文件。
该文本文件名为WHY_NOT.TXT
.我假设该文件是某种.NFO来自一群……嗯……“解放”了游戏的人的文件。
我没有太多运气使用 cat 或 less 或什至查看文件信息查看器。
问题是:如何才能按预期查看文件内容?
nfoview 的输出:
这是 cat 和 less 的输出。我使用屏幕截图是因为我担心浏览器和互联网会使编码变得更加混乱。
文件输出:
$ file WHY_NOT.TXT
WHY_NOT.TXT: ISO-8859 text, with CRLF line terminators, with escape sequences
这是使用以下命令创建的原始十六进制转储文件xxd -p WHY_NOT.TXT
:
1b5b34306d0d0a1b5b33396d1b5b34306d0d0a1b5b33396d1b5b34431b5b
303b33346ddb1b5b316ddbdfdfdfdfdfdf201b5b303b33346ddb1b5b316d
dbdfdfdfdfdfdb201b5b34346d201b5b34306ddbdfdfdfdfdfdb201b5b30
3b33346ddb1b5b316ddbdfdfdbdfdfdb201b5b303b33346ddb1b5b316ddb
1b5b36431b5b34346d201b5b34306ddbdfdfdfdfdfdb201b5b303b33346d
db1b5b316ddbdfdfdb201b5b303b33346ddb1b5b316ddb201b5b303b3334
6ddb1b5b316ddbdfdfdfdfdfdc0d0a202020201b5b303b33346ddb1b5b31
6ddbdcdcdcdcdcdc201b5b303b33346ddb1b5b316ddbdcdcdcdc1b5b3434
6ddc1b5b34306ddb201b5b34346d201b5b34306ddbdcdcdcdc1b5b34346d
dc1b5b34306ddb201b5b303b33346ddb1b5b316ddb201b5b303b33346ddb
1b5b316ddb201b5b303b33346ddb1b5b316ddb201b5b303b33346ddb1b5b
316ddb1b5b36431b5b34346d201b5b34306ddbdcdcdcdc1b5b34346ddc1b
5b34306ddb201b5b303b33346ddb1b5b316ddb201b5b303b33346ddb1b5b
316ddb201b5b303b33346ddb1b5b316ddb201b5b303b33346ddb1b5b316d
db202020201b5b303b33346ddb1b5b316ddb0d0a1b5b3130431b5b303b33
346ddc1b5b316ddb201b5b303b33346ddb1b5b316ddb1b5b37431b5b3434
6d201b5b34306ddb202020201b5b303b33346ddc1b5b316ddb201b5b303b
33346ddb1b5b316ddb202020201b5b303b33346ddb1b5b316ddb201b5b30
3b33346ddb1b5b316ddb1b5b36431b5b34346d201b5b34306ddb20202020
1b5b303b33346ddc1b5b316ddb201b5b303b33346ddb1b5b316ddb201b5b
303b33346ddb1b5b316ddb201b5b303b33346ddb1b5b316ddb201b5b303b
33346ddb1b5b316ddb202020201b5b303b33346ddb1b5b316ddb0d0a2020
20201b5b303b33346ddc1b5b316ddcdcdcdcdc1b5b34346ddc1b5b34306d
db201b5b303b33346ddb1b5b316ddb1b5b37431b5b34346d201b5b34306d
db202020201b5b34346d201b5b34306ddb201b5b303b33346ddb1b5b316d
db202020201b5b303b33346ddb1b5b316ddb201b5b303b33346ddb1b5b31
6ddbdcdcdcdcdc201b5b34346d201b5b34306ddb202020201b5b34346d20
1b5b34306ddb201b5b303b33346ddb1b5b316ddb201b5b303b33346ddb1b
5b316ddbdc1b5b34346ddc1b5b34306ddb201b5b303b33346ddb1b5b316d
dbdcdcdcdc1b5b34346ddc1b5b34306ddf0d0a1b5b306d1b5b323535440d
0a
您可以通过将该字符串复制到文件中来重新创建原始文件,然后使用xxd -r -p filename
.这是 md5sum,可以确保您拥有相同的原始文件:e64665b3f6e5fb3ec71c8fbf6cc63875
答案1
那是 MSDOS 字符集。
recode cp437..u8
在 UTF8 终端中尝试。
它给:
██▀▀▀▀▀▀ ██▀▀▀▀▀█ █▀▀▀▀▀█ ██▀▀█▀▀█ ██ █▀▀▀▀▀█ ██▀▀█ ██ ██▀▀▀▀▀▄
██▄▄▄▄▄▄ ██▄▄▄▄▄█ █▄▄▄▄▄█ ██ ██ ██ ██ █▄▄▄▄▄█ ██ ██ ██ ██ ██
▄█ ██ █ ▄█ ██ ██ ██ █ ▄█ ██ ██ ██ ██ ██
▄▄▄▄▄▄▄█ ██ █ █ ██ ██ ██▄▄▄▄▄ █ █ ██ ██▄▄█ ██▄▄▄▄▄▀
颜色。
答案2
关于颜色的一些线索:
事情ESC[0;33m;
是ANSI 转义序列用于向控制台输出添加颜色。 ascii 中的“ESC”是十进制 27 或八进制 33,因此您可以将其传递给 shell \\033
,看看我的意思:
echo -e "\\033[0;32mgreen \\033[1mbright \\033[44mon blue\\033[0m and reset..."
请记住,这\\033
是 ESC。看起来熟悉?其中很多只设置背景,有些文件是空格——因此就是风格化的SPAMLAND。
请注意,这些序列不适用于 MS Windows 终端仿真器。
答案3
感谢您的提示重新编码史蒂芬·查泽拉斯。
我有另一个 nfo 文件,它使用 CP866。
代码页显示在鼠标垫文本编辑器的不同编码列表中。
因此,为了查看该文件,我只使用了以下命令:
cat fairlight.nfo | recode cp866..u8 | less