sed 命令生成器
生成 sed 命令,用于过滤和转换文本流
sed 入门
## 什么是 sed?
`sed`(流编辑器,stream editor)逐行读取输入,应用一段编辑命令脚本,并将结果写入标准输出。它非常适合用于查找替换、文本替换以及批量文本转换。
## 如何使用
1. **输入脚本**:提供一段 `sed` 表达式,例如 `s/old/new/g`。 2. **设置选项**(可选):`-E` 启用扩展正则,`-n` 抑制自动打印,`-i` 就地编辑文件。 3. **指定文件**:输入要处理的文件。 4. **复制并运行**:将生成的命令复制到终端中执行。
替换语法
最常用的 `sed` 命令是替换:
``` s/pattern/replacement/flags ```
### 常用标志 - `g` — 替换每行中的所有匹配(不仅仅是第一个) - `i` / `I` — 不区分大小写匹配 - `N`(一个数字)— 只替换第 N 个匹配 - `p` — 仅在发生替换时打印该行(与 `-n` 搭配使用)
### 示例 - `s/foo/bar/g` — 把每个 `foo` 都替换成 `bar` - `s/[0-9]+/N/g`(搭配 `-E`)— 把每段连续数字替换为 `N` - `1d` — 删除第一行 - `/pattern/d` — 删除匹配 `pattern` 的行
### 引号 务必用单引号包裹脚本,否则 shell 会去解释 `/`、`$` 或 \\\\。本生成器会自动为你处理引号。
▶-i 标志有什么作用?
`-i` 会就地修改文件,而不是把结果写到 stdout。请务必先备份文件,或先不带 `-i` 测试一遍——这种修改是不可逆的。
▶如何在模式中使用特殊字符?
换用其他分隔符可以避免转义斜杠:`s|/usr/bin|/opt/bin|g` 把分隔符换成了 `|`。如果要用扩展正则(`+`、`?`、`|`、`{n}`),请启用 `-E` 标志。
如果这个工具对你有帮助的话,请考虑请我喝杯咖啡。
请给我买杯咖啡吧。