sed(Stream Editor)是一种用于在文本文件上进行替换和修改操作的流编辑器。它可以从管道或者文件中读取输入流,对其进行一系列操作后输出到终端或者文件中。sed 常用于执行以下操作:
1. 替换:sed 可以将原始文件中的文本替换为新的文本。
2. 删除:sed 可以删除指定的行或者字符。
3. 插入:sed 可以将指定的字符或者文本插入到文件的指定位置。
4. 查找:sed 可以查找文件中的指定文本。
5. 转换:sed 可以将文本文件中的字符进行转换。
命令格式:
```
sed [选项] '编辑命令' 文件名
```
常用选项:
- -n:只将处理结果输出到控制台,不输出源文件内容。
- -i:直接修改文件内容,保存替换后的文件。
- -e:用于指定多个编辑命令,多个编辑命令需要用分号进行分割。
常用编辑命令:
1. ```s/old/new/```:替换命令,将所有 old 字符串替换为 new。
2. ```d```:删除命令,删除指定行。
3. ```p```:打印命令,将指定行或者匹配到的文本输出到终端。
4. ```a```:追加命令,将指定文本追加到指定行后面。
5. ```i```:插入命令,将指定文本插入到指定行前面。
示例:
1. 将文件中的 foo 替换为 bar:
```
sed 's/foo/bar/g' file.txt
```
2. 删除文件中的第二行:
```
sed '2d' file.txt
```
3. 查找文件中包含 foo 的行并输出:
```
sed -n '/foo/p' file.txt
```
4. 在文件中第三行后面