sed -i 替换yaml中两级配置
时间: 2023-09-09 20:09:53 浏览: 128
可以使用以下的 `sed` 命令进行替换:
```bash
sed -i 's/\(^\s*key1:\s*\)old_value/\1new_value/' file.yaml
```
其中,`key1` 是第一级的键名,`old_value` 是需要被替换的旧值,`new_value` 是新值。
例如,假设我们有以下的 `file.yaml` 文件:
```yaml
key1:
key2: old_value
```
如果我们想要将 `key1` 下的 `key2` 的值从 `old_value` 替换成 `new_value`,则可以运行以下的命令:
```bash
sed -i 's/\(^\s*key1:\s*\)old_value/\1new_value/' file.yaml
```
执行完毕后,`file.yaml` 文件的内容会变为:
```yaml
key1:
key2: new_value
```
相关问题
sed -i 替换命令
sed -i 是一个在Linux和Unix系统中用于替换文件内容的命令。它可以直接修改文件,而不需要创建临时文件。
具体使用方式如下:
```
sed -i 's/要替换的内容/替换后的内容/g' 文件名
```
其中,`s/要替换的内容/替换后的内容/g` 是sed命令的替换模式,`g` 表示全局替换,即一行中所有匹配到的内容都会被替换。
举个例子,假设有一个文件test.txt,内容如下:
```
Hello, World!
```
我们想将其中的"World"替换为"CSDN",可以使用以下命令:
```
sed -i 's/World/CSDN/g' test.txt
```
执行完毕后,test.txt的内容将变为:
```
Hello, CSDN!
```
sed -i 替换第几行
sed命令是一个流编辑器,可以用于对文本进行替换、删除、插入等操作。其中,sed -i命令用于直接修改文件内容,而不是将结果输出到终端。
要替换文件中的某一行,可以使用sed -i命令结合行号和替换规则来实现。具体步骤如下:
1. 使用sed -n命令查看文件内容,并确定需要替换的行号。例如,要替换文件file.txt中的第3行,可以执行以下命令:
```
sed -n '3p' file.txt
```
2. 根据需要的替换规则,构造sed -i命令。例如,将第3行替换为"new line",可以执行以下命令:
```
sed -i '3s/.*/new line/' file.txt
```
上述命令中的'3s/.*/new line/'表示在第3行进行替换操作,将整行内容替换为"new line"。
请注意,sed -i命令会直接修改文件内容,请谨慎使用,并备份原始文件以防止意外情况发生。