中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-19 09:09
47,814 主题排行 / 349,908 发帖 / 今日 0 篇 / 48,259 会员排行
DOS疑难解答 & 问题讨论 (解答室) » [求助]如何用sed读取文本文件指定段位置内容?
可打印版本  1,122 / 5
第1楼 rongcong005 发表于 2008-06-26 21:09
初级用户 发帖 15 积分 38
[求助]如何用sed读取文本文件指定段位置内容?
有一文本如下:
☆test01☆
AAAtest01=123456789
BBBtest01=45678900
CCCtest01=abcdef02
DDDDtest01=FFFFFF03
☆test02☆
AAAtest02=123456
BBBtest02=456789
CCCtest02=abcdef
DDDDtest02=FFFFFF
☆test03☆
AAAtest03=123456ll
BBBtest03=456789999
CCCtest03=abcdef777
DDDDtest03=FFFFFF333
☆test04☆
AAAtest04=123456006
BBBtest04=456789005
CCCtest04=abcdef007
DDDDtest04=FFFFFF0.7

我现在用sed命令行读任意一段如: sed -n "/☆test03☆/{n;p;}" aa.txt>hhh.txt 读取☆test03☆以下内容到hhh.txt,可是只能得到一行,如下:
AAAtest03=123456ll

不知道要怎样才能得到☆test03☆以下四行的内容?即hhh.txt的内容为:
AAAtest03=123456ll
BBBtest03=456789999
CCCtest03=abcdef777
DDDDtest03=FFFFFF333

谢谢!!
第2楼 lxmxn 发表于 2008-06-27 04:53
版主 发帖 4,938 积分 11,386
第3楼 lxmxn 发表于 2008-06-27 04:56
版主 发帖 4,938 积分 11,386
笨点的方法就用n读取下一行,然后q退出
第4楼 rongcong005 发表于 2008-06-27 21:59
初级用户 发帖 15 积分 38
版主!二楼和三楼的方法都用了,好像不行,输出的是空文件。。。
是不是我的sed版本不对?
第5楼 rongcong005 发表于 2008-06-27 22:19
初级用户 发帖 15 积分 38
是不是" q "后面应该有个" ; "?
sed的语法对我来说实在是太复杂了,呵呵。。。。。。
谢谢lxmxn了!
第6楼 lxmxn 发表于 2008-06-29 03:35
版主 发帖 4,938 积分 11,386
我测试过了,2个方法都行,2楼的方法比较灵活点。

我用的sed的版本是:windows console version
E:\xm>sed -V
GNU sed version 4.0.7
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.
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023