**`sed`(流编辑器)常用命令**
`sed` 是一个强大的文本处理工具,常用于在文本流中进行替换、删除、插入等操作。以下是一些常见的 `sed` 命令:
- **替换文本**:
- `s/old/new/g`:将文本中所有匹配 "old" 的地方替换为 "new"。
例如,替换所有 "apple" 为 "orange":
```
sed 's/apple/orange/g' filename
```
- **删除行**:
- `d`:删除模式空间中的当前行。
例如,删除包含 "error" 的行:
```
sed '/error/d' filename
```
- **打印**:
- `p`:打印模式空间中的当前行。
例如,打印包含 "success" 的行:
```
sed -n '/success/p' filename
```
- **插入和追加**:
-
`i`:在匹配行前插入文本。
-
`a`:在匹配行后追加文本。
例如,在包含 "start" 的行前插入 "Begin":
```
sed '/start/i Begin' filename
```
- **保存到文件**:
- `-i`:直接修改文件内容,保存更改。
例如,替换 "cat" 为 "dog" 并保存到原文件:
```
sed -i 's/cat/dog/g' filename
```
- **选择行范围**:
-
`1,3d`:删除第1到第3行。
-
`/start/,/end/s/old/new/g`:在 "start" 和 "end" 之间的行中替换 "old" 为 "new"。
例如,删除第5到第8行:
```
sed '5,8d' filename
```
- **反斜杠转义**:
- 在命令中使用反斜杠 `\` 来转义特殊字符,以确保它们不被解释为正则表达式。
例如,替换包含 `^` 的行中的 `^` 为 `start`:
```
sed 's/\^/start/g' filename
```
这些是一些常见的 `sed` 命令,`sed` 提供了许多功能,可以根据需要进一步研究和使用。