请详细介绍sed的用法
时间: 2024-10-27 14:13:40 浏览: 18
`sed`(stream editor)是一个强大的文本流编辑工具,在Unix/Linux系统中广泛使用。它主要用于处理一行或多行的文本,常用于搜索替换、插入、删除等操作。以下是sed的一些基本用法和常用命令:
1. **基本语法**:
```
sed 'command(s)' [file]
```
`command(s)`是一系列命令,可以是一个单独的命令,也可以是多个命令组合。如果省略了文件名,则默认对标准输入进行操作。
2. **基本命令**:
- `s/pattern/replacement/flags`: 替换模式,如`s/old/new/g`表示全局替换所有匹配项。
- `p`: 打印当前行。
- `d`: 删除当前行。
- `i`: 在当前行插入内容。
- `/pattern/`: 条件匹配,后续的操作只对匹配行执行。
3. **范围控制**:
- `n`: 跳过下一行。
- `\n`: 指定次数的跳过(例如`\5`跳过5行)。
- `{start,end}commands`: 表示一个范围内的命令组。
4. **输入/输出重定向**:
- `-i`: 直接修改文件内容(需要确认或添加-i flag后指定备份文件名,如`-i.bak`)。
- 如果没有提供具体的命令,`sed`会进入交互模式,每条命令都是独立的。
例子:
- 将所有`hello`替换为`hi`:
```
sed 's/hello/hi/g' file.txt
```
- 删除第3行:
```
sed '3d' file.txt
```
- 在每一行末尾添加时间戳:
```
sed '$a\$(date)' file.txt
```
阅读全文