
标题: 我也来出题:提取特定文本中的字符串 [打印本页]
作者: hmily88 时间: 2008-7-23 15:44 标题: 我也来出题:提取特定文本中的字符串
附件:测试文本
测试文本在记事本中的截图

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

说明:
为回车符+换行符
回车符
为空格符
1、2、3、4行固定,其他行格式类似,行数不定
加一个条件:不采用第三方工具
要求只提取整篇文本中倒数第二个括号中的内容,其他不要(比如只提取上图中的“01:36.1”)(测试文本中应该是提取最后一个"04:45.9")
[ Last edited by hmily88 on 2008-7-30 at 07:01 PM ]
作者: moniuming 时间: 2008-7-23 17:27
CODE: [Copy to clipboard]
@echo off
for /f "tokens=2 delims=()" %%a in ('type a.txt') do (
echo %%a
)
pause
作者: bat-zw 时间: 2008-7-23 17:50
CODE: [Copy to clipboard]
@echo off
for /f "tokens=3 delims=() " %%i in (a.txt) do set "str=%%i"
echo %str%&pause>nul
作者: lxmxn 时间: 2008-7-23 19:00
楼上两位的测试都通不过,需要把回车转换一下。CODE: [Copy to clipboard]
@echo off
for /f "tokens=2 delims=()" %%a in ('sed "s/\r/\n/g" 6041.txt') do set "re=%%a"
echo.%re%&pause
作者: yishanju 时间: 2008-7-23 19:06
晕,
作者: HAT 时间: 2008-7-23 20:05
纠正一个说法
CR是回车
LF是换行
你在记事本里面敲一下回车实际是同时产生了CR和LF
作者: metoo 时间: 2008-7-23 20:49
awkCODE: [Copy to clipboard]
BEGIN {FS ="[()]"}
/.*\(.*/ {print $4}
作者: lxmxn 时间: 2008-7-23 20:58
| Quote: |
Originally posted by metoo at 2008-7-23 20:49:
awkCODE: [Copy to clipboard]
BEGIN {FS ="[()]"}
/.*\(.*/ {print $4} |
|
测试不可行……
作者: metoo 时间: 2008-7-23 21:18
- - 题意理解错误。。CODE: [Copy to clipboard]
BEGIN {FS ="[()]"}
END {print $2}
话说这玩意没啥通用性
[ Last edited by metoo on 2008-7-23 at 09:41 PM ]
作者: lpk130 时间: 2008-7-23 23:06
CODE: [Copy to clipboard]
@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 ]
作者: hmily88 时间: 2008-7-24 12:06
谢谢楼上纠正,我对CR和LF这东东也不太了解!
2、3楼的就不说了,4楼的好象也不行,提取到的是第一个括号中的unknown
10楼貌似可以,但文本稍微再大点就不行了。
------end-------
再一个,如果不采用第三方工具呢!!!
[ Last edited by hmily88 on 2008-7-24 at 12:52 PM ]
作者: hmily88 时间: 2008-7-26 16:13
......................
作者: flyinspace 时间: 2008-7-27 08:00
这个。。。
若你理解了批处理,出的题目才可以有难度呢。
作者: hmily88 时间: 2008-7-30 19:03
什么意思,
我看这也没几个人能做到,不信试试...
| 欢迎光临 中国DOS联盟论坛 (http://cndos.fam.cx/forum/) |
Powered by Discuz! 2.5 |