如何把DOS文本的换行符^M替换成行尾符$
怎么在VI里把DOS文本里的换行符“ ^M ”(就是用ctrl+v+m打出来的那个蓝色的),替换成linux里的行尾符“$” ?关键咋弄出个蓝色的$啊?
我实在不知怎么搞了,就用 :1,$s/^M/\$/g ,替换后的$自然就是普通的ASCII码符,没有换行的作用。
用 :1,$s/^M//g,把^M替换成空,也是没换行。
这个BLUE的$应该怎么打出来? 2006年08月05日星期六上午09时55分31秒[root@xxx root]# dos2unix --help
dos2unix Copyright (c) 1994-1995 Benjamin Lin
Copyright (c) 1998 Bernd Johannes Wuebben (Version 3.0)
Copyright (c) 1998 Christian Wurll (Version 3.1)
Usage: dos2unix [-hkqV] [-c convmode] [-o file ...] [-n infile outfile ...]
-h --help give this help
-k --keepdate keep output file date
-q --quiet quiet mode, suppress all warnings
always on in stdin->stdout mode
-V --version display version number
-c --convmode conversion mode
convmode ASCII, 7bit, ISO, Mac, default to ASCII
-l --newline add additional newline in all but Mac convmode
-o --oldfile write to old file
file ... files to convert in old file mode
-n --newfile write to new file
infile original file in new file mode
outfile output file in new file mode
我要是硬是要在VI里替换呢? :s/^M/$/g :s/^M/$/g
用这个只是换成普通的$,而不是在VI里显示漂亮蓝色的那种啊。 :s/^M/$/g
用这个只是换成普通的$,而不是在VI里显示漂亮蓝色的那种啊。
什么叫漂亮兰色? 8O :s/^M/$/g
用这个只是换成普通的$,而不是在VI里显示漂亮蓝色的那种啊。
什么叫漂亮兰色? 8O
就是行尾符啊,普通的LINUX文件,在用:set list命令后,行尾的蓝色$就会显示出来。就是这个蓝色的$。
因为我的文件没有换行,所以想把蓝色的^M换成蓝色的$ 用file命令探测文件类型时
dos文件 :
#file dostxtfile.c
dostxtfile.c: ASCII C program text, with CR line terminators
而在VI下编辑的普通linux文件是:
#file linuxtxtfile.c
linuxtxtfile.c: ASCII text 干脆放一个我的DOS文本文件上来,大家帮我看看吧:)
俺用
#dos2unix -n dosfile.c unixfile.c
#diffdosfile.c unixfile.c
没发现有什么改变啊~ 为什么一定要在vi里面做
gugong答案很标准 干脆放一个我的DOS文本文件上来,大家帮我看看吧:)
俺用
#dos2unix -n dosfile.c unixfile.c
#diffdosfile.c unixfile.c
没发现有什么改变啊~ 用dos2unix可能是针对行尾有^M$的情况的,只有把^M替换掉就没问题了。可是我的文件里的行尾只有^M,把^M替换掉的话就更加不能换行了。 多几次就行了. :neutral: :%s/^M/\r/g
页:
[1]