在Linux或者Unix下打开,每一行都会出多出^M这样的字符

Windows上写好的文件,在Linux或者Unix下打开,每一行都会出多出^M这样的字符,这是因为Windows与*nix的换行符不同所致,我们看看文件格式有什么不同。

  在Linux下查看文件格式:

  # file filename

  # 20140304110001.csv: ISO-8859 text //不带有^M

  # 20140304110002.csv: ISO-8859 text, with CRLF line terminators //带有^M

  Windows下处理的文件就带有CRLF行终止符。

  以下有几种处理方式:

  1. vi命令行模式下输入

  :%s/^M$//g # 去掉行尾的^M。

  :%s/^M//g # 去掉所有的^M。

  :%s/^M/[ctrl-v]+[enter]/g # 将^M替换成回车。

  :%s/^M/\r/g # 将^M替换成回车。

  2. 使用sed命令。和vi的用法相似:

  # sed -e ‘s/^M/\n/g’filename

  3. 使用命令

  使用dos2unix命令,一般的*nix发布版本都带有这个小工具,即Windows - *nix文件转换。

  格式: dos2unix filename

  转换多个文件

  格式:dos2unix file1 file2 file3 …。

  上面转换文件的时候都会修改原来的文件,使用 -k参数,或者 -n参数可以不改变文件属性。

  格式:dos2unix -n oldfile newfile //新建一个文件,保持源文件不变

  格式:dos2unix -k filename //保持文件时间戳不变

  同样工具提供了*nix - windows文件格式转换命令:unix2dos,参数同dos2unix。

  *注:“^M”,需要使用Ctrl + V + Ctrl + M键入,而不是数字6上面的^+字母M。

  上面就是Linux下处理文件内容中的^M字符的介绍了,如果^M字符影响到了你的阅读,你想将其去掉的话,只需按照本文介绍的方法,就能将^M字符轻松去除了。

时间: 2024-11-11 02:31:18

在Linux或者Unix下打开,每一行都会出多出^M这样的字符的相关文章

linux去掉windows下文件中的\r

Unix体系里,每行结尾只有"<换行>",即"\n":Windows体系里面,每行结尾是"<换行><回 车>",即"\n\r".一个直接结果是,Unix体系下的文件在Windows里打开的话,所有文字会变成一行:而Windows里的文件在Unix下打开的话,在每行的结尾可能会多出一个^M符号. 方法1: 在命令模式下:输入:%s/^M//g 然后,回车即可替换 注,其中"^M&qu

Linux,unix,cygwin,centeros下的tar压缩解压缩命令详解

Description 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面.它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止.可是它们出发之前忘记了一件很重要的事情,既没有问清楚对方的特征,也没有约定见面的具体位置.不过青蛙们都是很乐观的,它们觉得只要一直朝着某个方向跳下去,总能碰到对方的.但是除非这两只青蛙在同一时间跳到同一点上,不然是永远都不可能碰面的.为了帮助这两只乐观的青蛙,你被要求写一个程序来判断这两只青蛙是否能够碰面,会在什么时候碰面. 我们把这

Linux/Unix下pid文件的作用

主要有三点: (1) pid文件的内容:pid文件为文本文件,内容只有一行, 记录了该进程的ID. 用cat命令可以看到. (2) pid文件的作用:防止进程启动多个副本.只有获得pid文件(固定路径固定文件名)写入权限(F_WRLCK)的进程才能正常启动并把自身的PID写入该文件中.其它同一个程序的多余进程则自动退出. (3) 编程技巧: 调用fcntl设置pid文件的锁定F_SETLK状态,其中锁定的标志位F_WRLCK. 如果成功锁定,则写入进程当前PID,进程继续往下执行. 如果锁定不成

Windows 和 Linux 中的换行与回车的区别,Windows下编写的Shell脚本,直接放到linux/unix下执行会报错

首先: CR(Carriage Return)表示回车 LF(Line Feed)表示换行 Dos和Windows采用回车+换行(CR+LF)表示下一行而UNIX/Linux采用换行符(LF)表示下一行苹果机(MAC OS系统)则采用回车符(CR)表示下一行 Windows下编写的Shell脚本,直接放到linux/unix下执行会报错,就是因为行结束符不一样导致的. 现在好多文本工具都提供了转换功能,如我常用的,也是最强大的工具 (个人感受,不是打广告):notepad++. 原文地址:htt

Linux下打开Windows环境下创建的文本文件显示中文乱码问题

产生原因: Linux下打开Windows环境下创建的文本文件出现中文乱码,因为两种操作系统的中文压缩方式不同,在Windows环境下中文编码一般为GBK,而在Linux环境中为UTF-8,这就导致了在Windows下能正常显示的文件在Linux环境下打开出现了乱码. 解决方法: 使用iconv命令, 命令语法:iconv -f fromcode [-cs] [-t tocode [file ...] 假设乱码文件名为Hello.c,那么在终端可使用如下命令进行格式转换: iconv -f GB

[转载] linux下打开windows txt文件中文乱码问题

原文链接 在linux操作系统下,我们有时打开在windows下的txt文件,发现在windows下能正常显示的txt文件出现了中文乱码. 出现这种情况的原因为两种操作系统的中文压缩方式不同,在windows环境中中文压缩一般为gbk,而在linux环境中为utf8,这就导致了在windows下能正常显示 txt文件在linux环境下打开呈现了乱码状态. 解决方法:在linux用iconv命令,如乱码文件名为shujujiegou.txt,那么在终端输入如下命令: iconv -f gbk -t

MD5做为文件名。机器唯一码有电脑的CPU信息和MAC地址,这两个信息需要在linux或unix系统下才能获取吧。

可以采用机器(电脑)唯一码 + 上传IP + 当前时间戳 + GUID ( + 随机数),然后MD5做为文件名.机器唯一码有电脑的CPU信息和MAC地址,这两个信息需要在linux或unix系统下才能获取吧. //获取电脑的CPU信息function OnlyU(){        $a = '';        $b = array();        if(function_exists('exec')){                if(mailto:[email protected]

linux下打开windows txt文件中文乱码问题 (转载)

转自:http://blog.csdn.net/imyang2007/article/details/7448177 在linux操作系统下,我们有时打开在windows下的txt文件,发现在windows下能正常显示的txt文件出现了中文乱码. 出现这种情况的原因为两种操作系统的中文压缩方式不同,在windows环境中中文压缩一般为gbk,而在linux环境中为utf8,这就导致了在windows下能正常显示 txt文件在linux环境下打开呈现了乱码状态. 解决方法:在linux用iconv

linux下打开chm文件的方法

windows中,通常情况下,chm文件可以使用系统自带的程序打开,但是linux就没有那么幸运了,那么,如何在linux下打开chm 文件呢?有小编来为您介绍介绍,本篇,小编以ubuntu环境为例 ctrl+alt+t 打开终端,输入sudo apt-get install xchm,这是一个轻巧的linux下chm文件阅读器,如图 有时候xchm文件并不能满足功能上的需求或者外观,下面小编再推荐一款软件,kchmviewer,  sudo apt-get install kchmviewer