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中执行时,也有可能遇到格式不正确造成的命令执行错误,这时建议手动重新输入字符,如果觉得输入麻烦,可以只删除命令中的空格和最后一个字符后,重新输入空格和最后一个字符。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。