一个windows的文件,在ubuntu下每行结尾都有一个“^M”
在命令行模式下,可以用sed 's/^M$//' a.txt >b.txt 删除掉
但是为啥写在脚本里边就不行了呢
求大侠指点
一个菜鸟问题,请大侠赐教(^M 问题)
-
- 帖子: 61
- 注册时间: 2009-12-02 15:49
- nicegiving
- 帖子: 125
- 注册时间: 2008-07-03 19:25
Re: 一个菜鸟问题,请大侠赐教(^M 问题)
Windows下文件的换行符和linux下面的不一样。
在Windows下应该使用“\r\n”提供一次换行
而在Linux下只需要“\n”就可以了。
在Windows下应该使用“\r\n”提供一次换行
而在Linux下只需要“\n”就可以了。
- eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
- xhy
- 帖子: 3916
- 注册时间: 2005-12-28 1:16
- 系统: Ubuntu 12.10 X64
- 来自: 火星
- 懒蜗牛Gentoo
- 论坛版主
- 帖子: 7362
- 注册时间: 2007-03-02 17:36
- 系统: Linux Mint
Re: 一个菜鸟问题,请大侠赐教(^M 问题)
再教lz个不用sed的方法,有个命令叫unix2dos,还有个命令叫dos2unix。不知道ub下默认有没有,没有就apt吧
虽然世上没有完美的东西,但这并不影响我们追求完美,因为只有偏执狂才TMD能成功。
10.04新手入门——笨兔兔讲述自己的故事
10.04新手入门——笨兔兔讲述自己的故事
-
- 帖子: 5
- 注册时间: 2008-03-31 15:58
Re: 一个菜鸟问题,请大侠赐教(^M 问题)
这是由于文本中有两个\r造成的。
用这个 sed 's/\r$//' <file-name> 就可以了。
或在用vim 打开文件,会看到^M,这里用set ff=unix 保存退出后,再用vim打开就会看不到了。
用这个 sed 's/\r$//' <file-name> 就可以了。
或在用vim 打开文件,会看到^M,这里用set ff=unix 保存退出后,再用vim打开就会看不到了。