基本 sed 命令

几个常用的命令:

  • d 删除
  • a 追加
  • i 插入
  • c 修改
  • s 替换

替换

替换命令的详细语法如下:

1
[address] s/pattern/replacement/flags

flags 是修饰替换的标志,有如下几种情况:

  • n 1~512 之间的整数,表示替换几次
  • g 表示全部替换
  • p 打印替换后的内容
  • W 将内容写入文件

替换命令应用于 address 匹配的行。如果没有指定地址,那么就应用于 pattern 匹配的行。

replacement 是一个字符串,用来替换与正则表达式匹配的内容。在 replacement 部分,只用下列字符有特殊含义:

  • & 正则表达式匹配的内容
  • \n 匹配底 n 个字符串(n 是数字)
  • \ 转义 & 和 \

删除

删除命令一般是匹配一个地址,如果行匹配这个地址就删除该行。

追加、插入和更改

追加命令和插入命令只能应用于单个行地址。一般如下:

1
2
sed "/from/i new line" a.txt
sed "/from/a new line" a.txt

更改命令可以用于一个范围地址匹配的修改,会将匹配的行修改成新的内容。

1
sed "/from/,/end/c change line" a.txt

转换

转换命令如下:

1
[address]y/abc/xyz/

转换的含义是将对应的字符替换成相应的字符,不是以单词为单位,而是以字符为单位的。这个例子的意思就会把 a 替换成 x,b 替换成 y,c 替换成 z。

【参考资料】

  1. sed与awk

—EOF—