最近在学习sed的高级用法,嘿嘿,写下来,保存,以免以后忘记了。
1.sed 模式空间
2.sed 保持空间
- 命令 缩写 功能
- hold h或H 将模式空间的内容复制或追加到保持空间
- get g或G 将保持空间的内容复制或追加到模式空间
- exchange x 交换保持空间和模式空间的内容
- 注意:小写字母信命令是改定目的缓存区的内容,而大写字母命令是追加缓存区现有的内容
3.sed 高级流控制命令
1.标签
测试命令 t
分支命令 b
例:反转
- sed '/1/{h;d};/2/{G}' c
例:替换大小写
- sed '/the .*statement/{h;s/.*the \(.*\)statement.*/\1/;y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/;G;s/\(.*\)\n\(.*the \).*\(statement.*\)/\2\1\3/}' d
例:去除多余的空行
- sed '/^$/{N;/^\n$/D}' a