Board logo

标题: [问题求助] [已解决]:Sed命令如何取文本的某一段? [打印本页]

作者: Tuberose    时间: 2014-3-30 20:03     标题: [已解决]:Sed命令如何取文本的某一段?

本帖最后由 Tuberose 于 2014-3-31 18:56 编辑

我有一个 MyDOC.txt 文件
内容如下:

1. aaa 111
2. bbb 222
3. ccc 333
4. ddd 444
5. eee 555
6. fff 666

文本不定长
我想获取中间的某段文本
比如:

3. ccc 333
4. ddd 444

用 Sed.exe 如何下参数

谢谢你
作者: Batcher    时间: 2014-3-31 08:42

  1. sed "3,4!d" a.txt > b.txt
复制代码

作者: Batcher    时间: 2014-3-31 08:43

  1. sed -n "3,4p" a.txt > c.txt
复制代码

作者: Tuberose    时间: 2014-3-31 09:24

谢谢管理员的帮助
我知道了 "3,4p" 是取出 3-4行的文本

如果进一步问
我不知道行数号
我要取出:
bbb 222  到 eee 555 之间的文本
其中包含和不包含 bbb 和 eee 的 Sed 的两种参数如何写
比如取出
1.包含的:
======
2. bbb 222
3. ccc 333
4. ddd 444
5. eee 555

2.或者不包含的:
==========
3. ccc 333
4. ddd 444

谢谢
作者: Batcher    时间: 2014-3-31 09:51

  1. sed "/bbb 222/,/eee 555/!d" a.txt > b.txt
复制代码

作者: Tuberose    时间: 2014-3-31 16:08

可以了
谢谢专家的指导
我对 DOS 更有信心了
作者: Tuberose    时间: 2014-3-31 16:09

这个帖子怎么结贴呀?
作者: Batcher    时间: 2014-3-31 17:31

回复 7# Tuberose


http://bbs.bathome.net/thread-3473-1-1.html
作者: gannh    时间: 2014-5-31 11:04

再问batcher版主,如果有N个文本,想提取文本里面的某字段(如上面的ccc 333字段,且该字段有N行),代码该如何改写呢?谢谢
作者: Batcher    时间: 2014-5-31 11:43

回复 9# gannh


    你自己单独发个帖子吧,记得给出文本内容。




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2