sed -[nefr] cmd file
# print the result to stdout
# this is a comment
# no blank should be at the end of a line
options are optional:
-n silent, only print lines that be affected
-e multi cmd
-f read cmd from file
-r extensive regex
cmd: ‘ADDR OP’ or ‘[ADDR]s/PATTERN/SUB/ARG’
OP: a(append) c(replace) d(delete) i(insert bef) p(print) s(search and replace)
ADDR: begin,end line_n n~d:n,n+d,n+2d… regex
# note that regex in the form of /…/
ARG: g: apply to all p: print
eg
- sed ‘1s/old/new/’ file 将file的第一行中的第一个old替换为new,
- sed ‘s/old/new/g’ file 将file中的所有old替换为new,
- sed ‘s/old/new/2’ file 将file中的第二个old替换为new,
- sed ‘s;/home/mbinary/;/home/who/;’ 间隔符任意,这里是
;
, 一般用于路径替换 - sed ‘/^$/d’ file 删除所有空行
- sed -n ‘1~2p’ file 打印file的奇数行
- sed ‘2,6c 第2到6行被替换成这一行内容了QAQ’ file
- sed ‘/pt1/,/pt2/d’ file 删除第一个匹配pt1到第一个匹配pt2的所以行
- sed ‘/pt1/,+4d’ file 删除第一个匹配pt1的行及后四行
- sed -f fixup.sed somefile 读取fixup.sed中的sed命令应用到somefile上