Linux中sed命令功能强大,本文将具体介绍如何应用sed命令进行字符串替换
一、根本的替换
命令格局1:sed 's/原字符串/新字符串/' 文件
命令格局2:sed 's/原字符串/新字符串/g' 文件
这两种命令格局的区别在于是否有个“g”。没有“g”示意只替换第一个匹配到的字符串,有“g”示意替换所有能匹配到的字符串,“g”能够认为是“global”(全局的)的缩写,没有“全局的”结尾就不要替换全副,这样就好记啦。命令能够应用正则表达式来解决。如下图,第一个命令只是将第一个“b”替换成了“B”,其余的都没有替换;而第二个命令将全文中的数字都替换成了“好的”。
二、替换某行内容
命令格局1:sed '行号c 新字符串' 文件
命令格局2:sed '起始行号,终止行号c 新字符串' 文件
第一个命令示意用新的字符串替换指定这一行的内容, 第二个命令示意用新字符串替换指定几行的内容。如下图,第一个命令将第2行内容替换成了“new test!”,第二个命令将第2到6行替换成了“new test!”。
三、多条件替换
命令格局:sed -e 命令1 -e 命令2 -e 命令3
有些时候有多个替换条件,那就能够应用“-e”参数将这些替换条件连接起来,一次性实现所有的替换操作。例如,能够将上述的两种命令连接起来:“sed -e 's/原字符串/新字符串/' '行号c 新字符串' 文件”。如下图,不仅将小写“a”替换成了大写“A",还将第2行内容替换成了“new test!”。
四、保留替换后果到文件中
命令格局:sed -i 命令
上述这些命令都只是将替换后果打印到屏幕上,如果想保留后果到文件中,就须要加上“-i”参数。
留神,在输出Linux命令前,肯定要将输入法切换成英文半角符号状态。从Windows电脑上复制命令到Linux Terminal中执行时,也有可能遇到格局不正确造成的命令执行谬误,这时倡议手动从新输出字符,如果感觉输出麻烦,能够只删除命令中的空格和最初一个字符后,从新输出空格和最初一个字符。