问题
在日常工作中我们有时候会遇到字符处理的问题,将某些系统指令得到的字符进行处理,这时候我们就需要知道该指令结果的具体格式,将控制显示的格式字符显示出来对我们做结果切割很重要。
解决办法
使用常用cat
指令
查看cat指令帮助信息可知:
因此可以使用cat -A file
或者cat -te file
用于显示格式控制字符;但是显示的字符是以$
表示LF换行,^I
表示tab,其中tab是以脱字符形式表示;^M
表示CR字符,也是脱字符形式,是MAC下的换行字符;
关于不同系统换行符的形式如下:
系统类别 | 文本换行符 | 转义字符 |
---|---|---|
Windows | CRLF | \r\n |
Linux | LF | \n |
Mac | CR | \r |
linux下有win和linux格式互转的工具dos2unix
和unix2dos
;
使用vim显示
- 正常打开文件,在vim中输入
:set invlist
即可显示不可见的控制字符,显示方法同cat
;输入:set nolist
恢复正常模式; - 在vim中调用cat指令显示,打开文件输入
:%!cat -A
显示不可见字符,但是这种方式显示不便于编辑,特殊字符两个表示字符成了普通的字符,修改时容易出错,不如第一种方式; - 转成十六进制进行查看。以
vim -b file
打开文件,然后输入:%!xxd
将其以16进制显示,编辑完成后输入:%!xxd -r
恢复正常模式;其中xxd程序是vim软件包自带的一个程序,其功能就是进行十六进制的dump。