如何使用Linux sed命令进行字符串替换

webxEJIr

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中执行时,也有可能遇到格式不正确造成的命令执行错误,这时建议手动重新输入字符,如果觉得输入麻烦,可以只删除命令中的空格和最后一个字符后,重新输入空格和最后一个字符。

阅读 1.8k

计算机网络爱好者

67 声望
0 粉丝
0 条评论
你知道吗?

计算机网络爱好者

67 声望
0 粉丝
宣传栏