学习整理from gun.org

基本直译

1 简介

sed,一个流编辑器。那么一个流编辑器就是处理转换文本的,而它的输入流,则来自管道(pipeline)。sed同样也支持脚本编辑,而且只让输入流(inputs)处理一次,所以更加高效。而sed的特性就是从管道过滤文本,这就是它的拿手好活了。

2 Running sed

简单介绍运行sed的基操

2.1 Overview

通常sed像如下使用:

1
sed SCRIPT INPUTFILE...

比如,把input.txt中所有的hello替换成world

1
sed 's/hello/world/' input.txt > output.txt

如果不定义输入文件,或者输入文件是-sed就从标准输入(standard input)过滤,下边结果都是一样的

1
2
3
sed 's/hello/world/' input.txt > output.txt
sed 's/hello/world/' < input.txt > output.txt
cat input.txt | sed 's/hello/world/' - > output.txt

sed会把结果写到标准输出流。

2.2 命令行参数

2.3 退出类型

3 sed脚本语言

3.1 Overview

3.2 命令汇总

3.3 s Command

3.4 常用命令

3.5 不常用命令

3.6 sed针对大神的命令

3.7 针对GUNsed

3.8 多命令情况与语法

3.8.1 多命令需要另起一行

4 各种行操作

4.1 Overview

4.2 通过数字择取行

4.3 通过匹配字符择取行

4.4 范围择取

5 sed正则操作

5.1 Overview

5.2 Basic(BRE)正则和Extended(ERE)正则

5.3 Basic正则语法

5.4 Extended正则语法

5.5 方括号用法

5.6 正则扩展

5.7 前引用与子表达

5.8 针对特殊字符

5.8.1 转义优先

5.9 多字节字符与Locale情况

5.9.1 无效多字节字符

5.9.2 大小写

5.9.3 多字节正则类

6 sed高级用法:cyclesbuffers

7 一些脚本例子

8 GUN版本sed的局限和优势

9 其他学习资源

Resources

Tutorial

WithExamples

Manual

Attention

本文为个人翻译学习,鉴于认知水平和能力有限,不当之处在所难免。希望确证准确。

Contact: work@crushing.xyz