vi命令加行号查找替换等命令

一、加行号           : set nu

二、vi查找:    当你用vi打开一个文件后,因为文件太长,如何才能找到你所要查找的关键字呢?在vi里可没有菜单-〉查找,

不过没关系,你在命令模式下敲斜杆(/)这时在状态栏(也就是屏幕左下脚)就出现了 “/”然后输入你要查找的关键字

敲回车就可以了。如果你要继续查找此关键字,敲字符n就可以继续查找了。值得注意的是“/”是向下查找,而“?”

是向上查找,而在键盘定义上“?”刚好是“/”的上档符.

三、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/

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程序§

§ 使用命令: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
:§,$ s/str1/str2/g 用字符串 str2 替换正文当前行到末尾所有出现的字符串 str1
:1,$ s/str1/str2/g 用字符串 str2 替换正文中所有出现的字符串 str1
:g/str1/s//str2/g 功能同上
          从上述替换命令可以看到:g 放在命令末尾,表示对搜索字符串的每次出现进行替换;不加 g,

表示只对搜索字符串的首次出现进行替换;g 放在命令开头,表示对正文中所有包含搜索字符

串的行进行替换操作§

原文地址:https://www.cnblogs.com/yang75n/p/8351729.html

时间: 2024-11-09 00:55:45

vi命令加行号查找替换等命令的相关文章

viim命令行模式查找替换

1.查找 /   向上查找 ? 向下查找 2.替换 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/v

sed命令及vim的末行命令

sed:StreamEDitor,流编辑器,以行为单位对一个或多个文件进行编辑处理:每一次sed都会处理给定文件中的一行内容. 在sed处理文本时,将正在处理的当前行存储到临时的缓冲区中,称为"模式空间":用当前行去匹配给定的PATTERN,如果能匹配,则使用command编辑处理:如果不匹配,则默认输出至标准输出:然后继续处理下一行,直到文件的末尾. 默认情况下,sed的所有处理行为不会影响源文件的内容: 我们一般会使用sed命令来自动编辑一个或多个文件,简化对文件的循环操作: se

vi查找替换命令

vi查找替换命令详解 分类: 常用工具技巧 Linux/Unix/BSD2010-07-13 15:05 72075人阅读 评论(2) 收藏 举报 正则表达式vimunixborderwindowsshell 一.查找 查找命令 /pattern<Enter> :向下查找pattern匹配字符串 ?pattern<Enter>:向上查找pattern匹配字符串 使用了查找命令之后,使用如下两个键快速查找: n:按照同一方向继续查找 N:按照反方向查找 字符串匹配 pattern是需

Linux下vi替换字符命令操作实例

在Linux下的开发中,经常涉及到对文件里的字符进行处理,当中,对字符的替换操作也是非常的频繁. 本文以一个实际的文件为例,具体介绍了Linux下经常使用的vi替换字符命令,为相关的开发工作提供给了參考. 本文中被操作的文件为TestFile.txt,当中的内容例如以下: [email protected]:~/zhouzx/Test> cat TestFile.txt 12345678907890 ABCDABCDEFGHIJ 12345^&*()() 98765432103210 abc

用UNIX的cat命令用于给文本加行号 (转载)

转载:http://blog.csdn.net/vicant/article/details/2317721 有时候需要给文本加上行号,用UNIX的cat命令可以进行这项工作. cat命令的用法如下: NAME          cat - concatenate, copy, and print files SYNOPSIS          cat [-benrstuv] file ...Options      cat recognizes the following options:  

Mac上通过Linux命令行批量查找和替换文本

一般在本地电脑上批量替换文本有许多工具可以做到,比如Emeditor,sublime text ,但在linux和mac上相关的编辑器有这个功能的不多,另外大多服务器上都是无图形界面的,因此收集了几条针对linux命令行备忘,实现批量替换文本内容的命令: 批量查找某个目下文件的包含的内容 grep -rn "要找查找的文本" ./ 通过sed批量查找并替换文件内容. sed -i "s/要找查找的文本/替换后的文本/g"grep -rl "要找查找的文本&

vim以前没有用到过的命令 查找替换等

wexhjkl给文档加密 :X 解密 :set key=空V按行选定字符v按光标所在的位置选定字符p:粘贴 如果是V 复制的话,则粘贴的时候粘贴在光标的后面,如果是v复制的话 则粘贴的时候粘贴在光标的下面一行.P:粘贴 撤销快捷键:u撤销上次撤销的快捷键 ctrl+r如果想一直重复上次的命令的话 使用" . " 点以下是以前没有用到过的 (1)地址定界: :start_pos,end_pos #:具体的第#行,例如2来表示第2行 #,#:左侧的#表示起始位置,右侧的#表示结束位置 #,

复制/etc/profile至/tmp/目录,用查找替换命令删除/tmp/profile文件中的 行首的空白字符及在vim中设置tab缩进为4个字符

1.复制/etc/profile至/tmp/目录,用查找替换命令删除/tmp/profile文件中的 行首的空白字符 在命令模式下,使用正则表达式匹配 行首有空白字符行的模式:^[[:space:]]*\([^[:space:]]*\),输出命令 %s#^[[:space:]]*\([^[:space:]]*\)#\1#g1 2.vim中设置tab缩进为4个字符 vim .vimrc 输入 set tabstop=4 原文地址:https://www.cnblogs.com/mwd-123/p/

复制/etc/profile至/tmp/目录用查找替换命令删除/tmp/profile文件中的空白行

复制/etc/profile至/tmp/目录[[email protected] tmp]#cp /etc/profile /tmp删除/tmp/profile文件中的空白行用查找替换命令删除/tmp/profile文件中的行首的空白字符sed '[email protected]^[[:space:]][email protected]@' profile执行前:执行后:[[email protected] tmp]#sed '[email protected]^[[space:]]\[ema