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
处理之前
aaaaaaaaaa
bbbbbbbbb cccccccc
dddddddddddddddd
eeeeeee ee eeeee


处理之后
aaaaaaaaaa

bbbbbbbbb cccccccc

dddddddddddddddd

eeeeeee ee eeeee


是这个意思吗?

sed "G" a.txt

作者: amio     时间: 2008-6-27 17:19
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
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
Originally posted by amio at 2008-6-27 05:19 PM:

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


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

作者: HAT     时间: 2008-6-27 17:35
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
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
深刻学习中