【字符比较】文件内容比较方法
md5值校验失败问题
两个文件用cat 打开的 txt 显示是一样的
①用十六进制比较
先用vim -b data 以2进制打开文件,然后用xxd工具转化,在vim的命令行模式下:
- :%!xxd --将当前文本转化为16进制格式
- :%!xxd -r --将16进制转化为普通文本
直接vim 当前文件
按下回车,当前的文本内容被转换成16进制
②hexdump
hexdump可以用来查看二进制文件的16进制结果
hexdump data
如果文件比较大可以用 hexdump data | less 分页显示
如果想得到16进制和ascii码对应的显示结果,可以添加 -C参数
hexdump -C data | less
hexdump ursalink_devicehub_md5 | less
③用md5校验两个文件的md5值不一致
④diff
⑤file
校验方式:
root@ubuntu:/# file ursalink_devicehub_md5 ursalink_devicehub_md5: ASCII text, with no line terminators
root@ubuntu:/# file /root/ursalink_devicehub_md5 /root/ursalink_devicehub_md5: ASCII text
可以看到前面的那个少了一个结束符
⑥用VScode编程软件的右下角也可以看出两个文件的不同
可以显示出当前的文本是 LF 还是 CRLF
⑦用 ll 查看当前文件大小
在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33,Linux/Unix下的tty概念也来自于此)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒(注:估计是从打字机的最右边回到最左边的机械运动 所需要的时间),正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。
于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。
一个叫做“回车(Carriage Return)”,告诉打字机把打印头定位在左边界;
另一个叫做“换行(Line Feed)”,告诉打字机把纸向下移一行。
这就是“换行”和“回车”的来历,从它们的英语名字上也可以看出一二。
Unix系统里,每行结尾只有“LF”,即”\n”;
Windows系统里面,每行结尾是“LFCR”,即“\n\r”;
Mac系统里,每行结尾是“CR”,即”\r”;
一个直接后果是,Unix/Mac系统下的文件在 Windows里打开的话,所有文字会变成一行;而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。
CRLF的意思
linux下vim 编辑的文本文件 可能会比其他的txt文本文件 多一个 \n
要解决两个文本不一致的问题,可以在没有\n的文本里面编辑一下vim 然后保存
所生成ca证书的期限可以在 openssl