如何查找两个或以上的空行?

sh/bash/dash/ksh/zsh等Shell脚本
回复
头像
yechf
帖子: 305
注册时间: 2006-04-27 12:18
来自: 浙江德清武康

如何查找两个或以上的空行?

#1

帖子 yechf » 2013-01-11 10:21

libreoffice的文档中,有太多的空行,前几天想把两个或以上的空行,换成一个空行。
摸索几天,没有结果。
知道的,帮忙下。
THX! :em01
头像
gb112211
帖子: 3
注册时间: 2013-01-11 11:19
系统: win7

Re: 如何查找两个或以上的空行?

#2

帖子 gb112211 » 2013-01-11 11:22

用vim编辑,用这个命令试下
:%s/^\n$//g
头像
Rap:D
帖子: 33
注册时间: 2012-11-12 18:52
系统: ubuntu 11.10

Re: 如何查找两个或以上的空行?

#3

帖子 Rap:D » 2013-01-11 11:41

sed就可以了。。。。

代码: 全选

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

代码: 全选

#!/usr/bin/python
from Nirvana import Kurt_Cobain,Chris_Novoselic,Dave_Grohl
import Nirvana

while True:
     Nirvana.GrungeIsNotDead()
头像
Rap:D
帖子: 33
注册时间: 2012-11-12 18:52
系统: ubuntu 11.10

Re: 如何查找两个或以上的空行?

#4

帖子 Rap:D » 2013-01-11 11:59

要不就写一个python脚本

代码: 全选

#!/usr/bin/python
import re,sys

fd = open("test.log")
Buff = ""
for line in fd:
    Buff += line

Matcher = re.compile("^[\r\n]+$",re.MULTILINE)

sys.stderr.write(Matcher.sub("",Buff))

代码: 全选

#!/usr/bin/python
from Nirvana import Kurt_Cobain,Chris_Novoselic,Dave_Grohl
import Nirvana

while True:
     Nirvana.GrungeIsNotDead()
头像
yechf
帖子: 305
注册时间: 2006-04-27 12:18
来自: 浙江德清武康

Re: 如何查找两个或以上的空行?

#5

帖子 yechf » 2013-01-11 12:58

楼上两位,你好。
首先,这是一个ODT文件。
我想在libreoffice中查找替换。
没说清楚,sorry。

gb112211:
ub1004@fzkj:~$vim a.odt
:%s/^\n$//g
则提示:
E486 找不到模式 :^\n$


Rap:D:
ub1004@fzkj:~$ sed '/^$/N;/\n$/D' a.odt
我加了-i 也不行哦。
python不懂,不考虑。
头像
gb112211
帖子: 3
注册时间: 2013-01-11 11:19
系统: win7

Re: 如何查找两个或以上的空行?

#6

帖子 gb112211 » 2013-01-11 13:28

可能你文件内容的原因,我用上面两种方法都能够成功。
头像
luojie-dune
帖子: 22033
注册时间: 2007-07-30 18:28
系统: Linux
来自: 空气中

Re: 如何查找两个或以上的空行?

#7

帖子 luojie-dune » 2013-01-11 13:55

odt 是 zip包裹的规范化 xml,不知道怎么定义的,找到那个就能用sed


另外,libreoffice,真的,,,是个很烂的修改工具,这个软件的设计理念就是给知道自己做什么的用户一次性做好。修改啥的。。。
『这个世界都是我的 ,我爱你们』

ENTP ⥂ INTP ⥄ INFP ⇦ INTJ

在此发布的文章使用 Creative Commons Attribution-ShareAlike 4.0 协议
头像
yechf
帖子: 305
注册时间: 2006-04-27 12:18
来自: 浙江德清武康

Re: 如何查找两个或以上的空行?

#8

帖子 yechf » 2013-01-11 14:25

楼上你好。
ODT导出为xml,是一团浆糊。
我libreoffice用于工作有段时间了,觉得还不错。

gb112211,
你好,我贴出来,你试试。
附件
a.odt
(66.91 KiB) 已下载 46 次
头像
luojie-dune
帖子: 22033
注册时间: 2007-07-30 18:28
系统: Linux
来自: 空气中

Re: 如何查找两个或以上的空行?

#9

帖子 luojie-dune » 2013-01-11 14:43

『这个世界都是我的 ,我爱你们』

ENTP ⥂ INTP ⥄ INFP ⇦ INTJ

在此发布的文章使用 Creative Commons Attribution-ShareAlike 4.0 协议
头像
gb112211
帖子: 3
注册时间: 2013-01-11 11:19
系统: win7

Re: 如何查找两个或以上的空行?

#10

帖子 gb112211 » 2013-01-11 14:47

楼主你应该是想删除掉一部分空行,而不是要合并连续的空行吧?

上面两种方法的作用是把文档里边连续的空行合并成一个空行,所以你用起来的时候会提示错误,因为找不到连续两个或以上的空行。
头像
luojie-dune
帖子: 22033
注册时间: 2007-07-30 18:28
系统: Linux
来自: 空气中

Re: 如何查找两个或以上的空行?

#11

帖子 luojie-dune » 2013-01-11 14:51

『这个世界都是我的 ,我爱你们』

ENTP ⥂ INTP ⥄ INFP ⇦ INTJ

在此发布的文章使用 Creative Commons Attribution-ShareAlike 4.0 协议
头像
iamfbi
帖子: 1081
注册时间: 2009-02-06 9:18
来自: 小僧乃吐蕃国大雪山大轮寺护国法师座下四大护法之西域妖僧是也

Re: 如何查找两个或以上的空行?

#12

帖子 iamfbi » 2013-01-11 15:05

把两个\n换成一个\n。换多两次不就OK了?如果不支持搜索\n,把文本复制出来用其他工具替换掉再放回去。。不过就会失去格式。。
Laptop: i5-460m hm55 4g 320g hd5470 14'led 2.3kg (acer 4738g)
Windows XP 7 8 all in one partition.
Ubuntu 10.04 LTS
Mac OS X 10.6.7
折腾笔记
论坛随手记
回复