在VI中删除行尾的换行符

转自:http://fanzf24.blog.163.com/blog/static/3312764820092191013193/

在vi中,如果要删除行尾的换行符,可以用如下方法

第一种情况:只删除单行

如有文件如下:

[fanzf@SWserver ~/tmp]$ cat names.tmp 
101     Nate    H.
102     John    M.
104     Cassy   T.
106     Mary    L.
107     Isaac   C.

要将第一行和第二行合并,在命令行模式下可将光标移动到第一行,输入J(john,大写)即可;另外一种办法也是在命令行模式下,光标也移动到第一行,输入命令  :s//n//

运行效果如下

101     Nate    H.  102 John    M.
104     Cassy   T.
106     Mary    L.
107     Isaac   C.
~

第二种情况:删除所有换行符

在命令行模式下,光标也移动到第一行,输入命令  :%s//n//g

效果如下

101     Nate    H.102   John    M.g104  Cassy   T.g106  Mary    L.g107  Isaac   C.g

 

在以上命令中,

s 是替换,

/ 是间隔符,

/n 是换行负,即要替换的原串, 

/n后面的//,是要指替换成的串,在这里表示无

两条删除命令的区别在于前面有无 % ,  有%则在全文中替换

后面的g,是在整行中替换,由于每行最多只有一个换行,所以g在这里没实际意义

 

摘自:http://bbs.chinaunix.net/viewthread.php?tid=248620

在命令状态下,在某一行上按"J"键将Join下一行

J合并当前行和下一行
合并多行可以用.重复上一J命令或用nJ合并从当前行起的n行

你可能感兴趣的:(JOIN)