0727--linux的文件编码格式问题
2020-07-27 本文已影响0人
埋在沉默的梦里
linu文件编码格式的差异
linux下每行结尾以"\n" windows下每行结尾是"\n\r"
在linux环境中,使用cat -A ceshi.txt 查看文件。(相当于cat -vET , 可展示特殊字符。)
文件末尾是^M$
查看编码格式
:set ff 查看文件的编码格式
修改文件编码格式dos改为unix的六种方式
^M 可依次使用Ctrl+v,Ctrl+M
1)vi模式下
:%s/^M//g(如果提示"pattern not found ^M"失败,则表示文件默认识别并使用dos打开,此时直接
使用:set ff=unix命令,回车后,使用 :x 或 :wq 保存退出即可 )
2)vi 文件
:set ff=unix
3)使用sed命令
sed -i 's/^M//g' 测试.txt >tmp_filename
sed -e 's/^M//g' ceshi.txt >ceshi2.txt
4)使用tr命令删除字符
tr -d '\r' <ceshi.txt >ceshi2.txt
5)dos2unix
dos2unix ceshi.txt (需要安装dos2unix 命令,另外还有unix2dos命令,字符相互切换)
6) 使用shell脚本中的vi模式(脚本如下)
#!/bin/bash
cd /aml
echo 'start'
vi ceshi.txt << EOF
:set ff=unix
^[ #代表esc退出编辑模式
:x
EOF
echo 'end'