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 中执行时,也有可能遇到格局不正确造成的命令执行谬误,这时倡议手动从新输出字符,如果感觉输出麻烦,能够只删除命令中的空格和最初一个字符后,从新输出空格和最初一个字符。