在vi中使用模式匹配
来源:互联网 发布:费米估算法 维基百科 编辑:程序博客网 时间:2024/05/22 00:33
转自:http://hi.baidu.com/ilotus_y/blog/item/8a9167090edcb985d1581bb7.html
(1) [[:alnum:]] 文字数字字符
(2) [[:graph:]] 非空字符(非空格、控制字符)
(3) [[:print:]] 和非空字符一样,但还包括空格
(4) [[:space:]] 所有白空字符(新行、空格、制表符)
(5) c(confirm) 替换前显示提示符要求用户确认
(6) g(globe) 表示对所有(一行中所有)符合条件的字符进行替换.如果没有g只替换一行中第一个匹配的字符.
(7) [:digit:] 是0-9的另一种表达式,要使用这个类就必须把它放在方括号内,使得它成为可以识别的正则表达式.0-9本身并不是正则表达式,但是[0-9]就是; 同样[:digit:]只有被写成[[:digit:]]时才是正则表达式.
用vi如何将^M去掉? ^M为ctrl_v ctrl_m
-----------------------------------------------------
:%s/^M/ /g (命令模式下)
删除空行(只含有回车)
-----------------------------------------------------
:g/^$/d
删除所有空行
-----------------------------------------------------
:g/^[^I| ]*$/d
说明: ^I表示Tab
(空行中含有空格或Tab或者只有回车或者既有空格又有Tab)
将一行开头的若干空格替换成Tab(哈哈,Makefile文件中大有用处)
-----------------------------------------------------
:%s/^[ ]\+/^I/
说明:
(1) 直接使用Tab键即可输入^I;如果你是无法输入Tab键(Tab键被当作了快捷键),用ctrl+V ctrl+I输入。
(2)
egrep '3+' datafile
grep -E '3+' datafile
grep '3\+' datafile
打印所有包含一个或者多个3的行
Change every word in a file to uppercase/lowercase(大写/小写):
-----------------------------------------------------
:%s/.*/\U&/
:%s/.*/\L&/
将字符之间的空格去掉:
-----------------------------------------------------
:%s/\([^ ]\) \([^ ]\)/\1\2/g
曾 晓 龙 --> 曾晓龙
:%s/\(love\)able/\1rs/
\(...\) 标记后面用到的匹配字符,最多可以使用9个标签,第一个标签是模板最左边的部分.这里的\1代表love
loveable --> lovers
在文档的某一列统一添加一个 |
-----------------------------------------------------
(1) 首先在每一行的末尾添加足够多的空格
:%s/$/ /
(2) 在每一行的第50列添加一个 |
:%s/\(.\{50}\)/\1|/
(3) 去掉每一行末尾多余的空格
:%s/ $//
(2) [[:graph:]] 非空字符(非空格、控制字符)
(3) [[:print:]] 和非空字符一样,但还包括空格
(4) [[:space:]] 所有白空字符(新行、空格、制表符)
(5) c(confirm) 替换前显示提示符要求用户确认
(6) g(globe) 表示对所有(一行中所有)符合条件的字符进行替换.如果没有g只替换一行中第一个匹配的字符.
(7) [:digit:] 是0-9的另一种表达式,要使用这个类就必须把它放在方括号内,使得它成为可以识别的正则表达式.0-9本身并不是正则表达式,但是[0-9]就是; 同样[:digit:]只有被写成[[:digit:]]时才是正则表达式.
用vi如何将^M去掉? ^M为ctrl_v ctrl_m
-----------------------------------------------------
:%s/^M/ /g (命令模式下)
删除空行(只含有回车)
-----------------------------------------------------
:g/^$/d
删除所有空行
-----------------------------------------------------
:g/^[^I| ]*$/d
说明: ^I表示Tab
(空行中含有空格或Tab或者只有回车或者既有空格又有Tab)
将一行开头的若干空格替换成Tab(哈哈,Makefile文件中大有用处)
-----------------------------------------------------
:%s/^[ ]\+/^I/
说明:
(1) 直接使用Tab键即可输入^I;如果你是无法输入Tab键(Tab键被当作了快捷键),用ctrl+V ctrl+I输入。
(2)
egrep '3+' datafile
grep -E '3+' datafile
grep '3\+' datafile
打印所有包含一个或者多个3的行
Change every word in a file to uppercase/lowercase(大写/小写):
-----------------------------------------------------
:%s/.*/\U&/
:%s/.*/\L&/
将字符之间的空格去掉:
-----------------------------------------------------
:%s/\([^ ]\) \([^ ]\)/\1\2/g
曾 晓 龙 --> 曾晓龙
:%s/\(love\)able/\1rs/
\(...\) 标记后面用到的匹配字符,最多可以使用9个标签,第一个标签是模板最左边的部分.这里的\1代表love
loveable --> lovers
在文档的某一列统一添加一个 |
-----------------------------------------------------
(1) 首先在每一行的末尾添加足够多的空格
:%s/$/ /
(2) 在每一行的第50列添加一个 |
:%s/\(.\{50}\)/\1|/
(3) 去掉每一行末尾多余的空格
:%s/ $//
- 在vi中使用模式匹配
- 在 shell 中使用 vi 模式
- 在 shell 中使用 vi 模式
- Ubuntu中Vi在insert模式不能使用方向键问题
- 在awk模式匹配中使用自定义变量
- XSHELL:在VI中使用数字键盘
- Lua中如何使用模式匹配
- 在Linux的Vim编辑器中,如何使用非贪婪匹配模式查找
- 【linux】vi编辑器学习-匹配模式替换
- 算法笔记(VI) 模式匹配
- 在vi中使用的查找替换方法
- 在bash中使用vi的操作习惯
- 在 vi 中使用 Buffer 和 标记位置
- 在linux中使用vi 打开文件时,显示行号
- 在vi中使用perltidy格式化perl代码
- 如何在vi中优雅地使用ex
- vi使用技巧——在VI中剪切或者拷贝任意文本区域
- vi 中使用正则
- Entity Framework 4.1 推荐英文教程
- Java中char是unicode 占几个字节呢?
- 2005年浙大研究生复试上机真题-畅通工程
- 设置打印首选项
- fastboot的使用方法
- 在vi中使用模式匹配
- 深入学习Tomcat----自己动手写服务器(附服务器源码)
- backslash-newline at end of file
- Ninject使用指南
- 2005年浙大研究生复试上机真题-开门人与关门人
- window下搭建C++命令行编译环境
- SSH相关问题
- vi 中的正则表达式
- 破解某国外收费的RTMP Client并成功在Android和Java上调用