linux vi查找命令
 
div id="article_content" class="article_content">
 
使用vi编辑器编辑长文件时,常常是头昏眼花,也找不到需要更改的内容。
 
这时,使用查找功能尤为重要。
 
方法如下:  www.2cto.com  
 
1、命令模式下输入“/字符串”,例如“/Section 3”。
 
2、如果查找下一个,按“n”即可。
 
要自当前光标位置向上搜索,请使用以下命令:
 
/pattern Enter
 
其中,pattern表示要搜索的特定字符序列。
 
要自当前光标位置向下搜索,请使用以下命令:
 
?pattern Enter
 
按下 Enter键后,vi 将搜索指定的pattern,并将光标定位在 pattern的第一个字符处。
例如,要向上搜索 place一词,请键入:
  www.2cto.com  
vi 查找替换大全
 
vi/vim 中可以使用 :s 命令来替换字符串。以前只会使用一种格式来全文替换,今天发现该命令
有很多种写法(vi 真是强大啊,还有很多需要学习),记录几种在此,方便以后查询。
 
:s/vivian/sky/ 替换当前行第一个 vivian 为 sky
 
:s/vivian/sky/g 替换当前行所有 vivian 为 sky
 
:n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky
 
:n,$s/vivian/sky/g 替换第 n 行开始到最后一行中每一行所有 vivian 为 sky
 
n 为数字,若 n 为 .,表示从当前行开始到最后一行
 
:%s/vivian/sky/(等同于 :g/vivian/s//sky/) 替换每一行的第一个 vivian 为 sky
 
:%s/vivian/sky/g(等同于 :g/vivian/s//sky/g) 替换每一行中所有 vivian 为 sky
 
可以使用 # 作为分隔符,此时中间出现的 / 不会作为分隔符
 
:s#vivian/#sky/# 替换当前行第一个 vivian/ 为 sky/
 
:%s+/oradata/apras/+/user01/apras1+ (使用+ 来 替换 / ): /oradata/apras/替换成/user01/apras1/  www.2cto.com  
 
1.:s/vivian/sky/ 替换当前行第一个 vivian 为 sky
 
:s/vivian/sky/g 替换当前行所有 vivian 为 sky
 
2. :n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky
 
:n,$s/vivian/sky/g 替换第 n 行开始到最后一行中每一行所有 vivian 为 sky
 
(n 为数字,若 n 为 .,表示从当前行开始到最后一行)
 
3. :%s/vivian/sky/(等同于 :g/vivian/s//sky/) 替换每一行的第一个 vivian 为 sky
 
:%s/vivian/sky/g(等同于 :g/vivian/s//sky/g) 替换每一行中所有 vivian 为 sky
 
4. 可以使用 # 作为分隔符,此时中间出现的 / 不会作为分隔符
 
:s#vivian/#sky/# 替换当前行第一个 vivian/ 为 sky/
 
5. 删除文本中的^M
 
问题描述:对于换行,window下用回车换行(0A0D)来表示,Linux下是回车(0A)来表示。这样,将window上的文件拷到Unix上用时,总会有个^M.请写个用在unix下的过滤windows文件的换行符(0D)的shell或c程序。  www.2cto.com  
 
· 使用命令:cat filename1 | tr -d “^V^M” > newfile;
 
· 使用命令:sed -e “s/^V^M//” filename > outputfilename。需要注意的是在1、2两种方法中,^V和^M指的是Ctrl+V和Ctrl+M。你必须要手工进行输入,而不是粘贴。
 
· 在vi中处理:首先使用vi打开文件,然后按ESC键,接着输入命令:%s/^V^M//。
 
· :%s/^M$//g
 
如果上述方法无用,则正确的解决办法是:
 
· tr -d "\r" < src >dest
 
· tr -d "\015" dest
 
· strings A>B
 
6. 其它
 
利用 :s 命令可以实现字符串的替换。具体的用法包括:
 
:s/str1/str2/ 用字符串 str2 替换行中首次出现的字符串 str1
 
:s/str1/str2/g 用字符串 str2 替换行中所有出现的字符串 str1
  www.2cto.com  
:.,$ s/str1/str2/g 用字符串 str2 替换正文当前行到末尾所有出现的字符串 str1
 
:1,$ s/str1/str2/g 用字符串 str2 替换正文中所有出现的字符串 str1
 
:g/str1/s//str2/g 功能同上
 
从上述替换命令可以看到:g 放在命令末尾,表示对搜索字符串的每次出现进行替换;不加 g,表示只对搜索
 
字符串的首次出现进行替换;g 放在命令开头,表示对正文中所有包含搜索字符串的行进行替换操作。
 
 
作者 kisshua

linux vi查找命令的更多相关文章

  1. linux中查找命令find、locate、whereis、which、type区别

    linux中查找命令find.locate.whereis.which.type区别 1. find Java代码 find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件.与查询数据库(/ ...

  2. Linux文件查找命令find,xargs详述【转】

    转自:http://blog.csdn.net/cxylaf/article/details/4069595 转自http://www.linuxsir.org/main/?q=node/137 Li ...

  3. linux:vi替换命令

    linux:vi替换命令 vi/vim 中可以使用 :s 命令来替换字符串.以前只会使用一种格式来全文替换,今天发现该命令有很多种写法(vi 真是强大啊,还有很多需要学习),记录几种在此,方便以后查询 ...

  4. Linux下查找命令(收集整理)

    原文:http://blog.csdn.net/sunstars2009918/article/details/8510878 一.Linux查找文件的相关命令 常 用 命 令 简要中文说明 程序所在 ...

  5. Linux的查找命令

    1. 文件搜索find find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件. find的使用格式如下: $ find [搜索路径] [搜索条件][搜索文件名] 如果什么参数也不加,fi ...

  6. Linux搜索查找命令

    Linux搜索查找指令 find,用于在文件树中查找文件并作相应的处理 -name:按照文件名查找文件 -perm:按照文件权限查找文件 -user:按照文件属主来查找文件 -size:按照指定的文件 ...

  7. linux下查找命令总结

    查找命令总结,which,whereis,find,locate,type http://blog.csdn.net/jessica1201/article/details/8139249   1.f ...

  8. linux 如何查找命令的路径

    linux 下,我们常使用 cd ,grep,vi 等命令,有时候我们要查到这些命令所在的位置,如何做呢? linux下有2个命令可完成该功能:which ,whereis which 用来查看当 前 ...

  9. -Git Linux vi/vim 命令 按键 MD

    目录 目录 Linux vi/vim 简介 vi/vim 的使用 命令模式 输入模式 底线命令模式 vi/vim 使用实例 使用 vi/vim 进入一般模式 按下 i 进入输入模式,开始编辑文字 按下 ...

随机推荐

  1. Delphi Format中的换行符号是什么

    Delphi Format中的换行符号是什么 #,s1]);  s3#'%s',[s,s1]);  ShowMessage(s2);  ShowMessage(s3); end;   #13#10两边 ...

  2. FastJson解析对象及对象数组--项目经验

    第一次使用json,解析工具为FastJson,使用语言为java 常见的json解析实例,以map为例: Map<String,String> map=new HashMap<St ...

  3. 四种数据持久化方式(下) :SQLite3 和 Core Data

    在上文,我们介绍了iOS开发中的其中2种数据持久化方式:属性列表.归档解档. 本节将继续介绍另外2种iOS持久化数据的方法:数据库 SQLite3.Core Data 的运用: 在本节,将通过对4个文 ...

  4. 自定义 textField 的清除 button

    UIButton *clearButton = [self.textField valueForKey:@"_clearButton"]; [clearButton setImag ...

  5. 从创建webservice到发布webservice的一些相关总结

    最近做了一个web服务,开始什么也不懂,就在网上到处找,对于刚毕业的我,感觉没用实际代码经过自己的手写出来,看什么都一头雾水,然后就看到很多人说webservice已经融入WCF..然后就先创建了WC ...

  6. 如何在安卓/data(而不是/data/data)目录下进行文件的读写操作

    分析:Android默认是无法直接操作/data目录的,只能读写程序自己的私有目录,也就是/data/data/package name/下,默认只能操作这个目录下的文件,也就是我们想直接读写/dat ...

  7. jdbc - 连接数据库的url

    MySql: driver:com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/database_name SQL Server 2008: ...

  8. windows Server 2008 -必须使用“角色管理工具”安装或配置Microsoft .Net Framework 3.5

    在windows Server 2008上安装 .Net Framework 3.5的时候,报错:必须使用“角色管理工具”安装或配置Microsoft .Net Framework 3.5. Solu ...

  9. tomcat 正常启动,无法访问。且项目启动无问题。。。的解决办法。。

    Eclipes解决方法: 1.右击项目,选择propreties选项 2.在弹出的首选项窗口的左侧选择“Web Project Settings” 3.修改context root:输入框,修改成自己 ...

  10. 十六、C# 常用集合类及构建自定义集合(使用迭代器)

    常用集合类及构建自定义集合 1.更多集合接口:IList<T>.IDictionary<TKey,TValue>.IComparable<T>.ICollectio ...