Linux应用之sed删除空行

一、sed编辑器介绍

sed编辑器被称作流编辑器(stream editor),和普通的交互式文本编辑器恰好相反。在交互式文本编辑器中(比如vim),你可以用键盘命令来交互式插入、删除或替换数据中的文本。流编辑器则会在编辑器处理数据之前基于预先提供的一组规则来编辑数据流。
sed编辑器可以根据命令来处理数据流中的数据,这些命令要么从命令行中输入,要么存储在一个命令文本文件中(即脚本文件)。sed编辑器会执行下列操作:

  • 依次从输入中读取一行数据
  • 根据所提供的编辑器命令匹配数据
  • 按照命令修改流中的数据
  • 将新的输数据输出到STDOUT

在流编辑器将所有命令与一行数据匹配完毕后,它会读取下一行数据并重复这个过程,直至处理完所有数据后终止。
sed命令的格式如下

sed options script file

二、sed删除空白行

说明:在使用之前假设读者有基本的正则知识,如果没有,请自行学习

1. 删除连续的空白行

如果我们的文本各行之间有不定数量的空白行,阅读起来颇有些费力,且不美观,我们希望各行之间间隔是固定的,比如仅有一行空白行的间隔,我们可以用到下面脚本:

/./ , /^$/!d

区间/./到/^$/的开始抵制会匹配任何含有至少一个字符的行,区间的结束地址会匹配一个空行,在这个区间的行不会被删除。
实例

~$ cat example1
Such stories set us thinking, 

wondering what we should do under similar circumstances. 


What events, what experiences, 

what associations should we crowd into those last hours as mortal beings, 


what regrets?
~$ sed '/./,/^$/!d' example1
Such stories set us thinking, 

wondering what we should do under similar circumstances. 

What events, what experiences, 

what associations should we crowd into those last hours as mortal beings, 

what regrets?
~$

原来不规则的空白行变得均匀了。该示例中最后一行之后无内容,如果最后一行文字之后还有空白行,处理之后一会显示一行空白行。

2. 删除开头的空白行

如果一段文本中开头有多行空白,显然会给阅读带来不便。删除开头的空白行与上面思路比较相似,我们可以用到下面脚本:

<
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值