中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-08 04:57
48,041 主题排行 / 350,128 发帖 / 今日 3 篇 / 48,253 会员排行
DOS批处理 & 脚本技术(批处理室) » [求助]怎样提取文本中间的哪一行?
可打印版本  850 / 10
第1楼 pusofalse 发表于 2008-04-19 19:44
银牌会员 发帖 646 积分 1,604
[求助]怎样提取文本中间的哪一行?
a.txt:

1jd
2sdfls
3sd
4kop
5df
6sd

我只想提取出3sd
该怎么做?
谢谢~
第2楼 bat-zw 发表于 2008-04-19 20:07
金牌会员 发帖 1,276 积分 3,105
下次请把要求写清楚了:
首先建议搜索。
1按行搜索(第三行)

2按字符搜索(字符为3)
第3楼 pusofalse 发表于 2008-04-19 20:11
银牌会员 发帖 646 积分 1,604
回复2楼
那2个方法我也会,只是a.txt当中的内容是未知的,也怪我没说清楚,我想提取出a.txt中的第三行,第五行,第七行。。
第4楼 bat-zw 发表于 2008-04-19 20:32
金牌会员 发帖 1,276 积分 3,105
这也容易:


[ Last edited by zw19750516 on 2008-4-19 at 08:42 PM ]
第5楼 pusofalse 发表于 2008-04-19 20:41
银牌会员 发帖 646 积分 1,604
谢谢~~~ 一指点就明白了~~ 第一段代码,稍作修改下也可以~
@echo off&setlocal enabledelayedexpansion
for /f "delims=:" %%a in ('findstr /n .* a.txt') do set line=%%a
for /f "delims=" %%i in (a.txt) do (
set /a n+=1
for /l %%a in (3,2,%line%) do if !n! equ %%a set str=%%i&echo !str!
)
pause>nul

这样的话 不管有多少行,都会提取从3开始的奇数行了~~
第6楼 abcd 发表于 2008-04-19 21:54
银牌会员 发帖 739 积分 1,436
第7楼 ThinKing 发表于 2008-04-20 00:13
中级用户 发帖 207 积分 471
GNU sed
第8楼 ThinKing 发表于 2008-04-20 00:21
中级用户 发帖 207 积分 471
第9楼 26933062 发表于 2008-04-20 03:06
银牌会员 发帖 879 积分 2,268
从第3行开始取奇数行。
:
第10楼 plp626 发表于 2008-04-20 03:38
银牌会员 发帖 1,020 积分 2,278
我来个一句话的:
第11楼 26933062 发表于 2008-04-20 04:12
银牌会员 发帖 879 积分 2,268
Originally posted by plp626 at 2008-4-20 03:38:
我来个一句话的:


巧妙!
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023