sed -i应用场景

修改Linux系统软件源(以openEuler为例)

sed -i 's|http://repo.openeuler.org/|https://mirrors.huaweicloud.com/openeuler/|g' /etc/yum.repos.d/openEuler.repo

默认情况下,sed 使用斜杠(/)作为分隔符。但是,如果你需要在替换文本中使用斜杠,你可以使用其他字符作为分隔符,这里用了(|)

sed -i命令详解

  • sed -i 是一个常用的 sed 命令选项,用于直接修改文件内容,而不是将修改后的内容输出到标准输出(通常是终端或命令行界面)。

  • 具体来说,sed 是一个流编辑器,用于对输入流(或文件)进行基本的文本转换。-i 选项告诉 sed 直接编辑文件,而不是将结果发送到标准输出。

假设你有一个名为 example.txt 的文件,其内容如下:

Hello, world!
This is a test.

如果你想要将 “world” 替换为 “universe”,你可以使用以下命令:

sed -i 's/world/universe/g' example.txt

执行后,example.txt 的内容将变为:

Hello, universe!
This is a test.

注意:s/world/universe/g是一个 sed 表达式,其中 s表示替换操作,world 是要被替换的文本,universe是替换文本,g表示全局替换(即替换每一行中的所有匹配项)。

  • 备份原始文件

如果你希望在修改文件之前备份原始文件,你可以为 -i 选项提供一个扩展名。例如,下面的命令将在修改文件之前创建一个名为 example.txt.bak 的备份文件:

sed -i.bak 's/world/universe/g' example.txt

使用其他分隔符
默认情况下,sed 使用斜杠(/)作为分隔符。但是,如果你需要在替换文本中使用斜杠,你可以使用其他字符作为分隔符。例如:

sed -i 's|/|to/|g' example.txt

这会将 example.txt 中的所有斜杠(/)替换为 “to/”。注意,我们在 s 命令中使用了竖线(|)作为分隔符。

更多推荐