在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:空格
+: +表示匹配1-无穷
$:表行行尾
=================================================
在命令行模式下,光标也移动到第一行,输入命令 :%s/\n//g
效果如下
101 Nate H.102 John M.g104 Cassy T.g106 Mary L.g107 Isaac C.g
在以上命令中,
s 是替换,
/ 是间隔符,
\n 是换行负,即要替换的原串,
\n后面的//,是要指替换成的串,在这里表示无
两条删除命令的区别在于前面有无 % , 有%则在全文中替换
后面的g,是在整行中替换,由于每行最多只有一个换行,所以g在这里没实际意义
vim如何删除所有包含某个字符串的所在行?譬如删除掉所有包含了redis的行:
第一种情况:只删除单行
如有文件如下:
[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:空格
+: +表示匹配1-无穷
$:表行行尾
=================================================
在命令行模式下,光标也移动到第一行,输入命令 :%s/\n//g
效果如下
101 Nate H.102 John M.g104 Cassy T.g106 Mary L.g107 Isaac C.g
在以上命令中,
s 是替换,
/ 是间隔符,
\n 是换行负,即要替换的原串,
\n后面的//,是要指替换成的串,在这里表示无
两条删除命令的区别在于前面有无 % , 有%则在全文中替换
后面的g,是在整行中替换,由于每行最多只有一个换行,所以g在这里没实际意义
vim如何删除所有包含某个字符串的所在行?譬如删除掉所有包含了redis的行:
作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/2182/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!
最后编辑: jackxiang 编辑于2017-12-15 11:55
评论列表