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. SpringMVC DispatcherServlet 说明与web配置

    使用Spring MVC,配置DispatcherServlet是第一步. DispatcherServlet是一个Servlet,所以能够配置多个DispatcherServlet. Dispatc ...

  2. sqlserver 数据行统计,秒查语句

    1.传统统计方式                                                                                             ...

  3. [Javascript] Array - join()

    The join() method joins all elements of an array into a string. var name = 'shane osbourne'; var upp ...

  4. HttpContext.Current

    HttpContext. Response 直接这样写会报错 是因为 httpcontext没有提供response 这个静态的方法. 通过这样写就可以 ASP.NET还为它提供了一个静态属性Http ...

  5. 处理ASP.NET 请求(IIS)

    原文:http://www.cnblogs.com/hkncd/archive/2012/03/23/2413917.html 英文原文:Beginner’s Guide: How IIS Proce ...

  6. dede 最近一天发布的文章标题前加hot

    {dede:list pagesize ='15'} <!-- 模板1 --> <div class="news_list tp_a setp1"> < ...

  7. jquery生产和开发的区别

    今天说一下jquery生产和开发的区别,在我们下载jquery的时候,会有两个下载链接,一个是jquery.min.js .迷你版 (生产),另一个是 jquery.js .开发版 .不知道的人可能就 ...

  8. Android OpenGL ES 3.0 纹理应用

    本文主要演示OpenGL ES 3.0 纹理演示.接口大部分和2.0没什么区别,脚本稍微有了点变化而已. 扩展GLSurfaceView package com.example.gles300; im ...

  9. ASP 调用dll(VB)及封装dll实例

    ASP调用dll及封装dll实例,封装为dll可以提供运行效率,加密代码. 打开VB6,新建ActiveX DLL 2.在工程引用中加入Microsoft Active Server Pages Ob ...

  10. ITEXTSHARP学习整理

    学习的版本iTextSharp.5.5.5. 关于获取PDF中的图片资源 /// <summary> /// 将PDF中的图片资源转换成二进制 /// </summary> / ...