Linux Collection:文本编辑问题

PAS 删除文本中的^M标记

由于历史原因,不同操作系统使用不同的方式表示文件的换行符\n。现代计算机系统中的文件换行和早期的打字机有关,主要和两个控制符有关:line feed (LF) ,carriage return (CR)。

系统 换行符
Windows CRLF
Linux/macOS LF

由于如果将Windows中的存放/编辑过的文件(假设编码解析正确)在Linux中打开(使用cat -v filename命令查看),可以发现文件末尾会有^M符号,这回导致脚本文件等无法正确执行。而Linux文件在Windows中打开,通常会显示成一行,没有换行。

去除文件末尾^M的集中常见方法:

  • 方法1: dos2unix filename (dos2unix可能需要安装;部分系统可能不支持)
  • 方法2:sed -i 's/^M//g filename' (使用sed命令进行替换)
  • 方法3:vim打开文件,使用:%s/^M//g进行替换
  • 方法4:cat filename | tr -d "\r" > newfile

说明:输入^M符号(这是一个符号),使用Ctrl+V, Ctrl+M进行输入。

linux下去掉文件中^M的方法, 2014-02-28

猜你喜欢

转载自www.cnblogs.com/yernhi/p/10224058.html