怎么使用sed命令删除^M啊????

Jency1229 2004-08-17 03:08:00
我使用sed 's/^M//' a.c 把a.c这个文件里的^M删除,显示出来的时候是已经删除了,但是我用vi打开,发现^M还是存在;用sed '/^M/d' a.c,也是同样的效果,各位请帮忙啊???
...全文
762 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jency1229 2004-08-19
  • 打赏
  • 举报
回复
虽然还是没有解决,但是仍然谢谢,大家,结贴!
datuhao 2004-08-18
  • 打赏
  • 举报
回复
去掉^M 硬回车,不用这么复杂吧。

(1)cat filename |tr -d '\015' >newfile
sed 也可以实现这个功能.

(2)dos2unix filename

(3)最简单的,在vi 中用:%s/^M//g
^M 是用crtl-V crtl-M 打出来的。
blh 2004-08-18
  • 打赏
  • 举报
回复
// You can compile the following program
// Compile: gcc -o format format.c
//Usage: cat filename | format > newfilename
// file name: format.c
#include <stdio.h>

int main()
{
char in[2];
int flag = 0;

while (read(0, in, 2) > 0)
{
if (!((0xD == in[0])
&& (0xD == in[1])))
{
putchar(in[0]);
}
putchar(in[1]);
}
return 0;
}


Jency1229 2004-08-18
  • 打赏
  • 举报
回复
我用 sed -e 's/^M//' a.c >abk.c,我打开abk.c还是有^M,我的Os是aix4.3,好像没有dos2unix这个命令,请帮忙??
pacman2000 2004-08-17
  • 打赏
  • 举报
回复
唉。。。都说完了。
lijiangshui 2004-08-17
  • 打赏
  • 举报
回复
出现^M是因为你原来的文本文件是在windows下产生的吧,一个比较好的方法是用dos2unix来转换,如果你要用sed的话,应该所输出的结果重定向到一个新文件中,确认无误后替换原来的文件就可以了
GZ 2004-08-17
  • 打赏
  • 举报
回复
dos2unix
blh 2004-08-17
  • 打赏
  • 举报
回复
dos2unix filename
Quanj 2004-08-17
  • 打赏
  • 举报
回复
sed 's/^M//' a.c >result

19,612

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧