中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 我也来出题:提取特定文本中的字符串
作者:
标题: 我也来出题:提取特定文本中的字符串 上一主题 | 下一主题
hmily88
初级用户





积分 111
发帖 29
注册 2008-4-20
状态 离线
『楼 主』:  我也来出题:提取特定文本中的字符串

附件:测试文本

测试文本在记事本中的截图



测试文本在第三方文本编辑工具中的截图



说明:
为回车符+换行符
回车符
为空格符
1、2、3、4行固定,其他行格式类似,行数不定
加一个条件:不采用第三方工具
要求只提取整篇文本中倒数第二个括号中的内容,其他不要(比如只提取上图中的“01:36.1”)(测试文本中应该是提取最后一个"04:45.9")

[ Last edited by hmily88 on 2008-7-30 at 07:01 PM ]



上网时间有限,可能不能即时给你回复,抱歉!!!
2008-7-23 15:44
查看资料  发短消息 网志   编辑帖子  回复  引用回复
moniuming
银牌会员

永远的菜鸟



积分 1335
发帖 574
注册 2007-11-27
来自 广西
状态 离线
『第 2 楼』:  


@echo off
for /f "tokens=2 delims=()" %%a in ('type a.txt') do (
   echo %%a
)
pause


2008-7-23 17:27
查看资料  发短消息 网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 3 楼』:  


@echo off
for /f "tokens=3 delims=() " %%i in (a.txt) do set "str=%%i"
echo %str%&pause>nul




批处理之家新域名:www.bathome.net
2008-7-23 17:50
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 4 楼』:  

楼上两位的测试都通不过,需要把回车转换一下。
@echo off
for /f "tokens=2 delims=()" %%a in ('sed "s/\r/\n/g" 6041.txt') do set "re=%%a"
echo.%re%&pause


2008-7-23 19:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yishanju
银牌会员

[b]看你妹啊[/b]


积分 1488
发帖 1357
注册 2006-5-20
状态 离线
『第 5 楼』:  

晕,




有问题请发论坛或者自行搜索,再短消息问我的统统是SB
2008-7-23 19:06
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 6 楼』:  

纠正一个说法
CR是回车
LF是换行
你在记事本里面敲一下回车实际是同时产生了CR和LF



2008-7-23 20:05
查看资料  发短消息 网志   编辑帖子  回复  引用回复
metoo
初级用户





积分 195
发帖 93
注册 2006-10-28
状态 离线
『第 7 楼』:  

awk
BEGIN {FS ="[()]"}
/.*\(.*/ {print $4}


2008-7-23 20:49
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 8 楼』:  



  Quote:
Originally posted by metoo at 2008-7-23 20:49:
awk
BEGIN {FS ="[()]"}
/.*\(.*/ {print $4}

测试不可行……

2008-7-23 20:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
metoo
初级用户





积分 195
发帖 93
注册 2006-10-28
状态 离线
『第 9 楼』:  

-  - 题意理解错误。。
BEGIN {FS ="[()]"}
END {print $2}
话说这玩意没啥通用性

[ Last edited by metoo on 2008-7-23 at 09:41 PM ]

2008-7-23 21:18
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lpk130
初级用户





积分 80
发帖 30
注册 2007-4-19
状态 离线
『第 10 楼』:  


@echo off&setlocal enabledelayedexpansion
for /f "tokens=* skip=4" %%i in (604.txt) do set "string=%%i"
:loop
for /f "tokens=1,* delims=%%" %%i in ("!string!") do (
for /f "tokens=2 delims=()" %%s in ("%%i") do echo %%s
set "string=%%j"
if defined string goto loop
)
[ Last edited by lpk130 on 2008-7-23 at 11:08 PM ]

2008-7-23 23:06
查看资料  发短消息 网志   编辑帖子  回复  引用回复
hmily88
初级用户





积分 111
发帖 29
注册 2008-4-20
状态 离线
『第 11 楼』:  

谢谢楼上纠正,我对CR和LF这东东也不太了解!

2、3楼的就不说了,4楼的好象也不行,提取到的是第一个括号中的unknown

10楼貌似可以,但文本稍微再大点就不行了。
------end-------

再一个,如果不采用第三方工具呢!!!

[ Last edited by hmily88 on 2008-7-24 at 12:52 PM ]



上网时间有限,可能不能即时给你回复,抱歉!!!
2008-7-24 12:06
查看资料  发短消息 网志   编辑帖子  回复  引用回复
hmily88
初级用户





积分 111
发帖 29
注册 2008-4-20
状态 离线
『第 12 楼』:  

......................



上网时间有限,可能不能即时给你回复,抱歉!!!
2008-7-26 16:13
查看资料  发短消息 网志   编辑帖子  回复  引用回复
flyinspace
银牌会员





积分 1206
发帖 517
注册 2007-3-25
状态 离线
『第 13 楼』:  

这个。。。

若你理解了批处理,出的题目才可以有难度呢。



知,不觉多。不知,乃求知
2008-7-27 08:00
查看资料  发短消息 网志   编辑帖子  回复  引用回复
hmily88
初级用户





积分 111
发帖 29
注册 2008-4-20
状态 离线
『第 14 楼』:  

什么意思,

我看这也没几个人能做到,不信试试...



上网时间有限,可能不能即时给你回复,抱歉!!!
2008-7-30 19:03
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: