​sed [选项] 'sed命令' 输入文件​​ sed常用选项

  • -n不全部打印
  • -f 执行sed文件
  • -e执行多个sed编辑命令

sed定位文本命令

  • x 指定行号x
  • x,y 指定x到y的行号
  • /pattern/ 查询包含模式的行
  • /pattern/pattern/ 查询包含两个模式的行
  • /pattern/,x 从pattern的匹配行到x之间的行
  • x,/pattern/ 同上
  • x,y! 不包含x到y的行

sed常用编辑命令

  • p 打印匹配行
  • = 打印文本行号
  • a\ 定位行号后追加文本信息
  • i\ 定位行号前追加文本信息
  • d 删除定位行
  • c\ 新文本替换定位文本
  • w 将文本写入一个文件
  • s 使用替换模式替换相应文本

示例:

sed -i 's/原字符串/新字符串/' test.txt # 匹配一次
sed -i 's/原字符串/新字符串/g' test.txt # 多次匹配
sed -i 's/^@//' test.txt # 去掉行首带@的首字符@
sed -i '/特定字符串/i 新行字符串' test.txt # 特定字符串行前插入新行
sed -i '/特定字符串/a 新行字符串' test.txt # 特定字符串行后插入新行
sed -i '/特定字符串/d' test.txt # 删除特定字符串
sed -n '3,6p' input.txt # 打印3到6行
sed -n -e '/abc/p' -e '/abc/=' input.txt # 打印匹配'abc'的内容和行号
sed '/file:/a\We append a new line' # 在匹配'file:'的内容后面加一行'We append a new line',如果想要添加多行用'\'隔开
#!/bin/sed -f # 通常将`sed -f`写入shell脚本,开头就是以前面的形式,标识sed命令的位置

参考自[Linux Shell 编程从初学到精通]
​sed -i命令详解及入门攻略​​