在windows上编辑过的文件如果传到unix上,在每个文件的末尾都会有一个换行控制符^M,这个字符一般处于隐藏状态,除非cat -A才能看到,如果不去掉这个符号,很多脚本不能正常运行,很多文件不能正常被正则表达式匹配,去除类似的控制字符是让这些文件恢复正常使用的必须步骤;
根据上面的ascall字符代码表,左边两列非打印控制字符显示了每个字符的ascall码,接下来的工作就是用正则表达式匹配出这些字符然后去除就ok了,去除对应ascall码的字符,只需要转义对应的八进制值即可:
例如,想要去除回车控制字符,其二进制值为0b00001101,转换为八进制:015,只要s/\015//g就可以去除所有的回车控制字符。
同时,如果想要在vi中输入特殊控制字符,则应该在插入模式下,control+v+control+m即输入回车控制字符,其他的控制字符按类似的输入方式,control+v+control+a输入头标开始控制字符等
时间: 2024-10-13 00:55:19