sed 概述
`sed` 从输入流中逐行读取并根据指定规则(脚本)进行处理,然后将结果发送到标准输出。原始文件通常不被更改,要将更改的内容保存到文件中,必须使用重定向(`>`)或使用 `-i` 选项。
sed 的主要角色
`sed` 命令主要用于以下目的:
主要应用领域
- 文本替换/替换: 将文件中的特定字符串替换为另一个字符串。(最常见的用途)
- 删除/添加行: 删除包含特定模式的行,或在特定位置插入新行。
- 模式匹配及输出: 仅输出与特定模式匹配的行,或处理特定范围的行。
- 文件格式更改: 转换文本文件的格式或重新排列数据。
- 脚本自动化: 在批量处理大量文本文件的脚本中起着核心作用。
sed 的基本结构
`sed` 的基本命令结构是 `sed [OPTIONS] '脚本' [INPUT_FILE...]`。其中 '脚本' 采用 `[地址]命令[参数]` 的形式,最重要的命令是 `s` (替换)。
主要 sed 命令选项
`sed` 命令提供多种选项,以灵活处理输入、指定脚本和控制输出,从而实现灵活的文本编辑。
1. 脚本和文件处理选项
2. 替换(s) 命令标志
3. 其他有用的命令
生成的命令:
请尝试组合命令。
描述:
`sed` 执行命令。
通过组合这些选项,您可以与 AI 一起虚拟地执行命令。
使用示例
通过 `sed` 命令的各种使用示例,学习如何有效地搜索、替换和删除文本文件的内容。
将文件内所有 'old' 替换为 'new'
sed 's/old/new/g' example.txt
在 `example.txt` 文件中将所有单词 'old' 更改为 'new',并将结果显示到标准输出。
直接修改原始文件并替换字符串
sed -i.bak 's/DEBUG=true/DEBUG=false/' config.conf
在 `config.conf` 文件中将 'DEBUG=true' 直接更改为 'DEBUG=false',并生成原始文件的备份(.bak 扩展名)。
删除特定行号的行
sed '5d' log.txt
从 `log.txt` 文件中删除第 5 行并输出结果。
删除范围内的行
sed '10,20d' document.txt
从 `document.txt` 文件中删除第 10 行到第 20 行的内容并输出。
删除包含特定模式的行
sed '/WARNING/d' errors.log
从 `errors.log` 文件中删除包含单词 'WARNING' 的所有行,并输出结果。
在文件内容上插入头行
sed '1i\Name,Age,City' data.csv
在 `data.csv` 文件的第一行上方插入新的头行。
删除空行
sed '/^$/d' text.txt
从 `text.txt` 文件中删除所有空行。 `^$` 是表示空行的正则表达式。