标题: [文本处理] [已解决]批处理怎样提取文本中第一行的其中一段数字字符? [打印本页]
作者: edison 时间: 2010-10-17 21:40 标题: [已解决]批处理怎样提取文本中第一行的其中一段数字字符?
这是需要提取的字符的内容,文件名称为origin.log:- [9404.208] LateGame Full Render Score , 1983, NumDrawCallsPerFrame ,0
- [9404.208] LateGame NoShadow Render Score , 2770, NumDrawCallsPerFrame ,0
- [9404.208] LateGame No Render Score , 5500, NumDrawCallsPerFrame ,0
复制代码
我需要提取其中第一行 "LateGame Full Render Score , " 和 ", NumDrawCallsPerFrame" 之间的数值,上面为例就是1983,提取后的数值存放到:number.txt
试了这个指令:
grep.exe -m 1 -o "LateGame Full Render Score\"[0-9.]\+\"" "origin.log" >> number.txt
不过的出来的是一个空白文件。
不知道应该修改哪里呢?
[ 本帖最后由 edison 于 2010-10-18 18:04 编辑 ]
作者: Batcher 时间: 2010-10-17 21:47
- @echo off
- type nul >number.txt
- for /f "tokens=6 delims=, " %%a in (origin.log) do (
- >>number.txt echo,%%a
- )
复制代码
作者: CUer 时间: 2010-10-17 21:52
- sed -r "s/.*([0-9]{4}).*/\1/" origin.log | more >number.txt
复制代码
作者: edison 时间: 2010-10-17 22:37 标题: 回复 2楼 的帖子
刚才试了这个,生成的还是一个空白文件 @.@
作者: edison 时间: 2010-10-17 22:53 标题: 回复 3楼 的帖子
这个可以把三行的数字都提取出来成为:复制代码
不过我前面说过,是只要第一行的,不知道 SED 要加什么参数才能实现呢?
作者: hucuibai 时间: 2010-10-18 10:02
@echo off
for /f "delims=, tokens=2" %%i in (origin.log) do echo %%i >> tiqu.txt
作者: edison 时间: 2010-10-18 11:19 标题: 回复 6楼 的帖子
这个依然是空白。。。为啥呢 :)
作者: WUYAN520 时间: 2010-10-18 11:44
@echo off
(for /f "usebackq delims=, tokens=2 " %%a in (test.txt) do echo %%a)>>1.txt
pause
我也只能弄完出来,不会只把第一行的显示出来,水平有限!!!!
作者: WUYAN520 时间: 2010-10-18 11:45
usebackp不要
作者: Batcher 时间: 2010-10-18 11:52 标题: 回复 4楼 的帖子
请检查你的origin.log文件是不是ANSI编码格式
作者: CUer 时间: 2010-10-18 11:54 标题: 回复 5楼 的帖子
- sed -r "1!d; s/.*([0-9]{4}).*/\1/" origin.log | more >number.txt
复制代码
作者: edison 时间: 2010-10-18 17:09 标题: 回复 10楼 的帖子
我查看了,Ultraedit 状态栏那里显示打开的文件是 dos 格式,应该就是 ANSI 吧。
作者: edison 时间: 2010-10-18 17:26 标题: 回复 11楼 的帖子
谢谢 CUer,这个指令实现了^^/
再次感谢各位的帮助。
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |