最近在学习sed的高级用法,嘿嘿,写下来,保存,以免以后忘记了。

1.sed 模式空间

2.sed 保持空间

  1.  命令       缩写      功能   
  2.  hold       h或H     将模式空间的内容复制或追加到保持空间   
  3.  get        g或G     将保持空间的内容复制或追加到模式空间   
  4.  exchange    x       交换保持空间和模式空间的内容   
  5.    
  6. 注意:小写字母信命令是改定目的缓存区的内容,而大写字母命令是追加缓存区现有的内容  

3.sed 高级流控制命令

 1.标签

测试命令 t

分支命令 b

例:反转

  1. sed '/1/{h;d};/2/{G}' c 

例:替换大小写

  1. sed '/the .*statement/{h;s/.*the \(.*\)statement.*/\1/;y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/;G;s/\(.*\)\n\(.*the \).*\(statement.*\)/\2\1\3/}' d 

例:去除多余的空行

  1. sed '/^$/{N;/^\n$/D}' a