vi 替换命令

今天做一个文件到处理,就是将文件中所有URL 都提取出来,然后获取URL中到关键词,发现其实URL的格式还是很标准的,所以就没有在程序中用代码分析url,直接用vi 的替换命令将其余没用的都用空格替换,然后直接直接访问文件中到关键字。

发现对vi 到替换命令不是很熟悉,在网上找到这篇不错到介绍:

1. 基本的替换

: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

2. 可以使用 # 作为分隔符,此时中间出现的 / 不会作为分隔符

:s#vivian/#sky/# 替换当前行第一个 vivian/ 为 sky/

:%s+/oradata/apras/+/user01/apras1+ (使用+ 来 替换 / ): /oradata/apras/替换成/user01/apras1/

3. 删除文本中的^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

4. 其它用法

利用 :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
放在命令开头,表示对正文中所有包含搜索字符串的行进行替换操作。


vi 替换命令

时间: 2024-10-09 11:24:11

vi 替换命令的相关文章

vi 替换命令“找不到模式”解决

在linux vi编辑工具中使用替换命令操作时,会出现明明有匹配查找模式的数据,却报"找不到模式"问题. 原因是vi s///替换操作缺省针对行,若要生效,则需要将光标移动到指定行,再使用s///命令即可. 若要进行批量替换,则使用%s///命令,例如: :%s/192.168.1.8/192.168.20.240/g 其中g表示全局替换. vi替换命令参考: http://hi.baidu.com/our_poll/item/bb87c33233af5bbe633afff4 vi/v

linux: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 行开始到最后一行

linux:vi 替换命令

转自:http://www.cnblogs.com/afant/archive/2009/03/11/1408745.html :s/^.*$/\L&/100 ##将100行内的小写转换成大写 vi/vim 中可以使用 :s 命令来替换字符串.:s/vivian/sky/ 替换当前行第一个 vivian 为 sky:s/vivian/sky/g 替换当前行所有 vivian 为 sky :n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky:n

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

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

vi查找替换命令

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

转载 vi替换windows换行符为linux换行符

1.用vi打开指定文本文件:vi filename.c 2.按 Esc 键,进入命令模式: 3.按 : 键 (按 Shift 键不放后,同时按 : 键)进入命令输入状态: 4.在冒号后输入:%s/^M//g 注:^M是一个字符不是输入^和M两个字符, 即按住 Ctrl 键不放,同时按 V 键产生^,依然按住 Ctrl 键不放,同时按 M 产生M. 5.按 Enter 键,执行替换命令 6.按 : 键 (按 Shift 键不放后,按 : 键)进入命令输入状态: 7.在冒号后输入:wq  <-- 保

linux vi 编辑器命令

最近学习linux shell, 了解了一下vi 编辑器里面的常用命令,尤其配置文件很长很长的时候,使用这些命令会很方便.这里简单介绍一下一些常用的简单命令. vi常用命令 h 光标向左移一个字符 l  光标向右移一个字符 H 在编辑页面点按H(大写),光标会直接移动到页面的第一个字符上 M 在编辑页面点按H(大写),光标会直接移动到页面中间的第一个字符上 L 在编辑页面点按H(大写),光标会直接移动到页面末尾的第一个字符上 Ctrl+f  向后翻页 Ctrl+b   向前翻页 Ctrl+u  

【Linux】vi编辑器命令

   1)进入vi的命令 vi filename :             打开或新建文件,并将光标置于第一行首 vi +n filename :          打开文件,并将光标置于第n行首 vi + filename :           打开文件,并将光标置于最后一行首 vi +/pattern filename:    打开文件,并将光标置于第一个与pattern匹配的串处 vi -r filename:           在上次正用vi编辑时发生系统崩溃,恢复filename

Ubuntu中vi常用命令

在Ubuntu中经常需要修改某些文件,这里对vi中的一些常用操作作一下总结. 1.进入vi命令 vi filename: 打开或新建文件,并将光标置于第一行首 进入文件后,处于命令行模式(command mode) 2.切换为命令行模式 按 ESC 键 3.插入模式(Insert mode) 在命令行模式(command mode)下按一下字母 i  在光标之前插入: a  在光标之后插入: I 在光标所在行的行首插入: A  在光标所在行的行末插入: o  在光标所在的行的上面插入一行: O