linux 命令行下如何查看文件内容

上周有客户问我为什么用cat打开中文文件时总是出现错误的字符。
我自己遇到的陷阱是仅仅能够使用猫是不够的。
您必须首先了解文件编码。

我们来谈谈 all.txt 文件。
我2 02 3 年8 月2 6 日在Linux服务器上用file命令查了一下,显示是UTF-8 Unicodetext,而且还特别提到行终止符是CRLF。
但如果直接使用cat all.txt,默认可以用ASCII解码,中文肯定会变成一堆乱码。

如果你看一下abc.txt,就会发现有所不同。
使用 file 检查它是否是 ASCII 文本。
如果包含简单的英文或数字,那就是正常的。
这提醒我看文件编码非常重要,尤其是在处理中文文档时。

我通常使用 iconv 来转换编码,例如 iconv -f UTF-8 -t GBK all.txt > all_gbk.txt。
但客户询问了 cat 命令本身。
事实上,猫无法自动识别编码。
除非你使用less或者cat -A(显示结束行字符),或者直接使用od -c来查看字节码。

但后来发现有些Linux发行版自带的cat有-A参数,可以显示$行终止符。
但并非所有系统都是标准的,这取决于您的系统版本。
你可以尝试 man cat 看看你的版本是否支持任何参数。

无论如何,单独信任一只猫是不可靠的。
必须先通过文件查出详细信息,或者使用echo命令的-e参数带转义符,如echo -e "Hello"才能正确显示中文。
但是file命令却很方便。
这是我每次处理扭曲角色时首先想到的事情。

linux下查看文件编码格式以及转换格式教程

2 02 3 年,我的朋友遇到了麻烦。
Linux下如何查看文件编码?我用file命令检查了一下,问题解决了。

上周,我也想更改文件编码并尝试使用 iconv 命令。
首先检查支持的编码格式,然后使用-f指定源编码,-t指定目标编码,-o指定输出文件。
例如,要将 iso-8 8 5 9 -1 转换为 UTF-8 ,命令如下: iconv -f iso-8 8 5 9 -1 -t UTF-8 -o /opt/test1 .log --verbose /opt/test.log。

转换完成后,使用file命令再次查看。
编码格式正确。
这个技巧很有效,下次我再试试。
没关系

linux下查看文件编码格式以及转换格式教程

直接给出结论。

查看编码: 终端。
根权限。
文件 -i /路径/到/文件。

转换编码: 终端。
iconv -f from_encoding -t to_encoding /path/to/file -o /path/to/output --verbose。

示例: 2 02 3 年1 月1 日,Linux终端位置。
iconv -f iso-8 8 5 9 -1 -t UTF-8 /opt/test.log -o /opt/test1 .log --verbose。

验证: 终端。
file -i /path/到输出。

别有幻想。