Linux替换命令

转载 2017年01月03日 20:59:11

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

相关文章推荐

linux sed命令,如何替换换行符“\n”

linux sed命令如何替换换行符n 命令解释 第一种方法使用test跳转命令实现替换换行符 branch和test区别 第二种方法使用branch跳转命令实现替换换行符linux sed命令,如何...

Linux 管道、命令替换、重定向

Linux 管道、命令替换、重定向输出 如何修改系统的默认启动级别 如何把文件传到Linux机器中去(vsftpd安装) Linux安装jdk,tomcat,mysql...

linux vi替换命令

转载自:http://www.cnblogs.com/afant/archive/2009/03/11/1408745.html   :s/^.*$/\L&/100 ##将100行内的小写转换成...
  • yxtouch
  • yxtouch
  • 2015年04月24日 15:16
  • 266

LINUX查找命令、替换、管道符号

查找  find、locate、grep等 1)根据文件属性信息查找 find:系统中存在的文件,时间长、效率低  locate:不存在于库查不到      效率快      update...

Linux:shell脚本之命令替换(eval,反引号和$())

关于shell脚本中的反引号、$()与eval实行命令替换的区别与联系
  • if9600
  • if9600
  • 2017年07月03日 17:33
  • 273

Linux学习笔记9 alias, unalias,命令结果替换,文件通配符

1.alias 命令别名例子不带参数选项的别名不需要引号:[root@localhost ~]# alias cls=clear带参数的别名: [root@localhost ~]# alias cd...

linux sed替换命令s举例

Linux sed命令不会真正修改原文本,除非重定向 linux sed替换命令s sed 's/test/mytest/g' example.txt 表示将example.txt中的test文本...

linux:vi 替换命令

:s/^.*$/\L&/100 ##将100行内的小写转换成大写 vi/vim 中可以使用 :s 命令来替换字符串。 :s/vivian/sky/ 替换当前行第一个 vivian 为...
  • Vindra
  • Vindra
  • 2014年09月12日 10:36
  • 329

批量替换文本内容 linux sed命令

1.1. Sed简介 2.sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Linux替换命令
举报原因:
原因补充:

(最多只允许输入30个字)