sed learning notes
[TOC]
sed notes
what is sed?
sed
is a stream editor. A stream editor is used to perform basic text transformations on an input stream (a file or input from a pipeline).
语法
sed OPTIONS... [SCRIPT] [INPUTFILE...]
选项
选项 | 解释 |
---|---|
-f script-file | 添加script-file到命令 |
-i [suffix] | 就地编辑。suffix指定备份文件后缀名 |
-n/–quiet/ – slient | slient |
-e script | 添加script到命令 |
基础
-
命令结构:
[address[, address]] instruction [argument-list]
地址(address)
类似于awk的范围模式。$表示最后一行。
指令
指令 | 解释 |
---|---|
a (append) | append text after a line |
c (change) | change lines with text |
d (delete) | stop processing the current line, immediately start next cycle |
i (insert) | insert text before a line |
N (next without write) | add a newline to the pattern space, then append the next line of input to the pattern space |
n (next) | print the pattern space, then replace the pattern space with the next line of input |
p (print) | print the pattern space |
q (quit) | exit |
r filename (read) | read text of a file |
s (substitute) | format: s/regexp/replacement/[flags] |
w filename (write) | write the pattern space to filename |
### 控制结构
符号 | 解释 |
---|---|
! (NOT) | not |
{} | 将一组指令括起来,用$;$将多条指令隔开 |
:label | 标记一个位置,作为跳转目标 |
b [label] | 无条件转移 |
t [label] | 匹配成功则转移 |
### 暂存空间
符号 | 解释 |
---|---|
g | 将暂存空间的内容复制到模式空间中,模式空间中原来的内容丢失 |
G | 将一个换行符和暂存空间中的内容append到模式空间中 |
h | 将模式空间中的内容复制到暂存空间中,暂存空间中原来的内容丢失 |
H | 将一个换行符和模式空间中的内容append到暂存空间中 |
x | 交换模式空间和暂存空间中的内容 |
### regular expression extensions
symbol | explanation |
---|---|
\w | any “word” character (字母、数组、下划线) |
\W | any “non-word” character |
\b | a word boundary |
\B | every but on a word boundary |
\s | whitespace characters (空格、tab、暂存空间和模式空间中的回车) |
\S | non-whitespace characters |
\< | beginning of a word |
\> | end of a word |
\` | start of pattern space, different from ^ |
\’ | end of pattern space, different from $ |
Written on September 14, 2017