Board logo

标题: sed 删除空行问题 [打印本页]

作者: amio     时间: 2008-6-27 10:35    标题: sed 删除空行问题

aaaaaaaaaa
bbbbbbbbb cccccccc

dddddddddddddddd



eeeeeee ee  eeeee
---------------------------------- 变成↓
aaaaaaaaaa
bbbbbbbbb cccccccc
dddddddddddddddd
eeeeeee ee  eeeee
作者: HAT     时间: 2008-6-27 10:47

sed "/^$/d" a.txt

作者: hongewuyan     时间: 2008-6-27 10:49
sed "/./!d" your.txt >new.txt

如果是要求dos格式,就这样:

sed "/./!d" your.txt | sed "s/$/\r/">new.txt
作者: amio     时间: 2008-6-27 11:06
能不能对 这个.txt 直接进行修改   不重新生成个  new.txt

我是用批处理调用 sed 的     不是直接用sed命令
作者: HAT     时间: 2008-6-27 11:13
好像没有那个命令可以直接修改文本内容吧,呵呵,还是用临时文件吧。
作者: amio     时间: 2008-6-27 16:24
能不能让行与行之间保留一行空行  ?
作者: hongewuyan     时间: 2008-6-27 16:33
sed "/./!d" your.txt | sed G | sed "s/$/\r/">new.txt
作者: HAT     时间: 2008-6-27 16:40
处理之前

  Quote:
aaaaaaaaaa
bbbbbbbbb cccccccc
dddddddddddddddd
eeeeeee ee  eeeee

处理之后

  Quote:
aaaaaaaaaa

bbbbbbbbb cccccccc

dddddddddddddddd

eeeeeee ee  eeeee

是这个意思吗?
sed "G" a.txt

作者: amio     时间: 2008-6-27 17:19


  Quote:
Originally posted by hongewuyan at 2008-6-27 04:33 PM:
sed "/./!d" your.txt | sed G | sed "s/$/\r/">new.txt

这个可以
作者: amio     时间: 2008-6-27 17:19


  Quote:
Originally posted by HAT at 2008-6-27 04:40 PM:
处理之前


处理之后


是这个意思吗?
sed "G" a.txt

如果中间有很多空行不行的
作者: amio     时间: 2008-6-27 17:20
我日 sed 也不支持 unicode编码。。。。。。。。。。。。
作者: HAT     时间: 2008-6-27 17:32


  Quote:
Originally posted by amio at 2008-6-27 05:19 PM:

如果中间有很多空行不行的

自己应该可以看出来吧?
sed "/^$/d" a.txt | sed "G"

作者: HAT     时间: 2008-6-27 17:35


  Quote:
Originally posted by amio at 2008-6-27 05:20 PM:
我日 sed 也不支持 unicode编码。。。。。。。。。。。。

这个简单,先type一下就行了。
type a.txt | sed "/^$/d" | sed "G"

作者: amio     时间: 2008-6-27 17:47


  Quote:
Originally posted by HAT at 2008-6-27 05:35 PM:

这个简单,先type一下就行了。
type a.txt | sed "/^$/d" | sed "G"

我用的是 unicode 的INF文件  好像不好使.....
作者: HAT     时间: 2008-6-27 17:59
不好使的具体表现是?


作者: amio     时间: 2008-6-27 18:07
我估计你新建的 a.inf  默认的编码是 ANSI 的吧
作者: HAT     时间: 2008-6-27 18:10
这点常识我还是有的,呵呵。
我用的"另存为"

你的sed版本是?

C:\ProgramMy\GnuWin32>sed --version
GNU sed version 4.1.5
Copyright (C) 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE,
to the extent permitted by law.
作者: amio     时间: 2008-6-27 18:58
C:\Program Files\GnuWin32\bin>sed --version
GNU sed version 4.1.5
Copyright (C) 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE,
to the extent permitted by law.


我是用批处理调用的  估计原因是这

cd "C:\Program Files\GnuWin32\bin"
type c:\a.INF | sed.exe "/^$/d" | sed.exe "G"
作者: amio     时间: 2008-6-27 18:59
如果不用批处理调用的话   很麻烦的
作者: amio     时间: 2008-6-27 19:27
又失败了    用type    处理完还是ANSI的     而一些字符成了乱码 "??????"
作者: HAT     时间: 2008-6-27 20:24
是否介意把你的a.inf的内容贴出来看看?


作者: amio     时间: 2008-6-27 20:37
就是系统里面的INF 文件


如果想要 批处理在什么文件夹下都可以调用  是不是得吧sed.exe  放到系统文件夹下
作者: HAT     时间: 2008-6-28 00:06
或者把sed所在的目录加入到%path%里面也可以
系统里面的哪个INF文件?完整路径是什么?
作者: kevingames     时间: 2008-6-30 13:33
深刻学习中