sed [-e] 'instruction' file
只有在命令行上给出多个指令时才需要-e选项,它告诉sed将下一个参数解释为指令。
-n   sed的默认操作是输出每个输入行,-n选项可以组织自动输出。当指定该选项时,每个要生成输出的指令都必须要包含打印命令p。

Page 44

shell里面不接收单引号转义。在表达式中确实需要用到'或者",可以用"把表达式包围起来,然后在表达式中进行适当的转义,如果/这样的字符比较多,可以用另外的分隔符,比如;@等这样表达式中的/就不需要转义了。

在方括号中,标准的元字符会失去它们的含义。

page 64

page 75

sed首先将整个编辑脚本应用于第一个输入行,然后再读取第二个输入行并对其应用整个脚本。因为sed总是处理原始行的最新形式,所以生成的任何编辑工作都会改变后续命令应用的行。

page 86


page 96

troff为长破折号提供了一个特殊的字符名 \(em

排除3个或多个连续的连字符的行
sed '/---/!s/--/\\(em/g' file

page 99


page 105

[address]s/pattern/replacement/flags
s/制表符/>/2  假设每行有3个制表符,并且要用>替换第二个指标位
\一般用于转义其他的元字符,但是它在替换字符串中也用于包含换行符
插入命令将所提供的文本放置在模式空间的当前行之前。追加命令将文本放置在当前行之后。更改命令用所提供的文本取代模式空间的内容。这些命令中的每一个都要求后面跟一个反斜杠用于转义第一个行尾。test必须从下一行开始。要输入多行文本,每个连续的行都必须要用反斜杠结束。最后一行例外。

page 131

page 145     2008/06/23

page 181     2008/06/24

page 192     2008/06/24

page 226     2008/06/25

page 230     2008/06/26

如果你在shell脚本中调用了awk,命令行的参数将传递给shell而不是传递给awk。你必须将shell脚本的命令行参数,传递给在shell脚本中的awk。

page 237     2008/06/27