标题: [文本处理] BAT如何在文本中提取特殊定字符最后一次出现的所在行的内容? [打印本页]
作者: tamicer 时间: 2013-9-24 12:06 标题: BAT如何在文本中提取特殊定字符最后一次出现的所在行的内容?
想从a.txt中提取“第”字最后一次出现所在行的后6个字符,a.txt内容如下:
……
0 11:40:47 初始化完成,热键模式为:增强模式
0 11:40:49 启动脚本:Hw.Q,创建线程:5832
0 11:40:49 线程 5832 执行结束
0 11:42:32 初始化完成,热键模式为:增强模式
0 11:42:35 启动脚本:Hw.Q,创建线程:5560
0 11:42:35 线程 5560 执行结束
0 11:54:16 初始化完成,热键模式为:增强模式
0 11:54:17 启动脚本:Hw.Q,创建线程:4436
0 11:54:17 线程 4436 执行结束
0 11:55:21 初始化完成,热键模式为:增强模式
0 11:55:24 启动脚本:Hw.Q,创建线程:1728
1728 11:55:24 Hw.Q,第12行: 131455
1728 11:55:27 Hw.Q,第18行: 131388
1728 11:55:29 已停止日志记录
想提取“131388”这个数字,多谢指教 !!
作者: tamicer 时间: 2013-9-24 12:08
把结果写入b.txt
作者: PowerShell 时间: 2013-9-24 14:36
本帖最后由 PowerShell 于 2013-9-24 14:37 编辑
- #powershell代码
-
- $文件 = Get-Content 'e:\pscode\a.txt'
- for ($i=-1;$i -gt $(0 - $文件.length);$i--)
- {
- if($文件[$i] -like "*第*")
- {
- $目标行 = $文件[$i]
- $结果 = $目标行.substring(($目标行.length - 6),6)
- $结果 | Out-File 'e:\pscode\b.txt'
- break
- }
- }
复制代码
测试通过
作者: tamicer 时间: 2013-9-24 15:38
楼主初学批处理,Powershell对于我来说生了点,版主能不能再教教我用 For和findstr怎么写?
作者: batman 时间: 2013-9-24 19:48
本帖最后由 batman 于 2013-9-24 19:52 编辑
- @echo off
- for /f "delims=" %%a in ('findstr "第" a.txt') do set "str=%%a"
- echo,%str:~-6%
- pause>nul
复制代码
作者: batman 时间: 2013-9-24 19:52
- @echo off
- for /f "tokens=4" %%a in ('findstr "第" a.txt') do set "str=%%a"
- echo,%str%
- pause>nul
复制代码
作者: DAIC 时间: 2013-9-24 20:57
- gawk "/第/{n=$NF}END{print n}" a.txt
复制代码
作者: tamicer 时间: 2013-9-25 12:31
学习了,非常感谢!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |