xshining 发表于 2003-5-9 10:20:44

紧急求助,如何去除文件中的^M控制字符

在redhat中,如何通过命令去除文件行末尾的^M控制字符?
我不想用vi来做。
我上次在论坛中看到可以用命令行来完成的。
请告知。
谢谢。

bixuan 发表于 2003-5-9 10:32:10

用shell可以,不过我也得自己试一下,能不能把你的这文件发上来,好试验!:)

wsm 发表于 2003-5-9 16:53:43

写一个程序 以二进制打开文件 读到0x0d跳过 读完写回 即可

xshining 发表于 2003-5-9 17:35:28

我查到了,是通过dos2unix命令来实现的。
# dos2unix filename

在我的redhat9上执行这个命令没问题。
但在我的redhat7.1上,说没有这个命令。
我现在就是不知道这个命令是属于哪个rpm安装包的。

xshining 发表于 2003-5-9 17:50:20

我找到了,就是属于dos2unix这个rpm包

albtross 发表于 2003-5-11 22:39:59

please use sed or awk. they are prefect!

Dirac 发表于 2003-5-12 13:16:36

dos2unix filename filename

bixuan 发表于 2003-5-12 13:34:15

please use sed or awk. they are prefect!
用sed,awk就是太麻烦了!

lophyxp 发表于 2003-7-31 12:42:29

刚找到的:

dos文件转换为unix文件(去掉dos文件的^M)



作者:q_ping


一、SCO OpenServer中,
如果要将dos文件转换为unix 文件(去掉dos 文件的^M):
在shell 下用 dtox filename1 > filename2 (dos文件filename1转换为unix文件filename2)
将unix文件转换为dos文件:
xtod filename1 > filename2 (unix文件filename1转换为dos文件filename2,可带^M)

二、如果你的dos文件拷贝到unix系统下每行用^M结尾,如下两种办法可以清除它

用vi编辑该文件,输入vi命令:
∶%s/^V^M//g

如果在unix shell下,则输入命令:
% sed 's/^V^M//g' foo > foo.new

注意: ^V 是 control + V , ^M 是 control + M 或 Enter

bixuan 发表于 2003-7-31 14:48:26

不错,收藏!http://www.ourlinux.net/wz/Article_show.php?id=618
页: [1]
查看完整版本: 紧急求助,如何去除文件中的^M控制字符