Unix流编辑器sed单行脚本快速参考(7)

来源:未知 责任编辑:责任编辑 发表时间:2015-09-16 20:04 点击:

 

# 只保留多个相邻空行的前两行。

sed '/^$/N;/\n$/N;//D'

 

# 删除文件顶部的所有空行

sed '/./,$!d'

 

# 删除文件尾部的所有空行

sed -e :a -e '/^\n*$/{$d;N;ba' -e '}'  # 对所有sed有效

sed -e :a -e '/^\n*$/N;/\n$/ba'        # 同上,但只对gsed 3.02.*有效

 

# 删除每个段落的最后一行

sed -n '/^$/{p;h;};/./{x;/./p;}'

 

特殊应用:

--------

 

# 移除手册页(man page)中的nroff标记。在Unix System V或bash shell下使

# 用'echo'命令时可能需要加上-e 选项。

sed "s/.`echo \\\b`//g"    # 外层的双括号是必须的(Unix环境)

sed 's/.^H//g'             # 在bash或tcsh中, 按Ctrl-V 再按Ctrl-H

sed 's/.\x08//g'           # sed 1.5,GNU sed,ssed所使用的十六进制的表示方法

 

# 提取新闻组或e-mail 的邮件头

sed '/^$/q'                # 删除第一行空行后的所有内容

 

# 提取新闻组或e-mail 的正文部分

sed '1,/^$/d'              # 删除第一行空行之前的所有内容

 

# 从邮件头提取“Subject”(标题栏字段),并移除开头的“Subject:”字样

sed '/^Subject: */!d; s///;q'

 

# 从邮件头获得回复地址

sed '/^Reply-To:/q; /^From:/h; /./d;g;q'

 

# 获取邮件地址。在上一个脚本所产生的那一行邮件头的基础上进一步的将非电邮

# 地址的部分剃除。(见上一脚本)

sed 's/ *(.*)//; s/>.*//; s/.*[:<] *//'

 

# 在每一行开头加上一个尖括号和空格(引用信息)

sed 's/^/> /'

 

# 将每一行开头处的尖括号和空格删除(解除引用)

sed 's/^> //'

 

# 移除大部分的HTML标签(包括跨行标签)

sed -e :a -e 's/<[^>]*>//g;/</N;//ba'

 

# 将分成多卷的uuencode文件解码。移除文件头信息,只保留uuencode编码部分。

# 文件必须以特定顺序传给sed。下面第一种版本的脚本可以直接在命令行下输入;

# 第二种版本则可以放入一个带执行权限的shell脚本中。(由Rahul Dhesi的一

# 个脚本修改而来。)

sed '/^end/,/^begin/d' file1 file2 ... fileX | uudecode   # vers. 1

sed '/^end/,/^begin/d' "$@" | uudecode                    # vers. 2

 

# 将文件中的段落以字母顺序排序。段落间以(一行或多行)空行分隔。GNU sed使用

# 字元“\v”来表示垂直制表符,这里用它来作为换行符的占位符——当然你也可以

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • /etc/fstab 详解
  •  LVS-NAT和LVS-DR模式的实现详解
  •  RHCE考试之磁盘配额
  • nginx主主集群
  •  LVM逻辑卷管理器
  • 学习笔记:ACL详解
  • suse linux双网卡双网关配置
  • puppet文件服务配置
  •  Linux System and Performance Monitoring(Network篇)

快速直达

操作系统导航

LinuxWindows虚拟机
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1