目录
- ```sed -i```应用场景
- ```sed -i```命令详解
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 命令中使用了竖线(|)作为分隔符。