找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 26734|回复: 8

[文本处理] [已解决]批处理怎么从文本中每一行里提取特定字符串?

[复制链接]
发表于 2011-11-29 23:27:01 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2016-12-8 17:50 编辑

如何截取log.txt文本中最末尾一行的内空。

但不需要末尾一行的全部内容,只需要 那个时间(2011-11-29 星期二 - 【21:10】:43.96 )“【”中的这一部分,如果无法截取全部时间也好。

用find试过,可是小白菜小平怎么也没截出来,故来求经。
  1. log.txt

  2. 2011-11-26 星期六 - 11:21:31.54
  3. 2011-11-26 星期六 - 16:39:07.68
  4. 2011-11-26 星期六 - 22:00:33.12
  5. 2011-11-27 星期日 - 16:20:30.87
  6. 2011-11-27 星期日 - 16:29:43.18
  7. 2011-11-27 星期日 - 20:42:15.70
  8. 2011-11-28 星期一 - 11:15:02.01
  9. 2011-11-28 星期一 - 20:37:06.82
  10. 2011-11-29 星期二 - 10:25:07.54
  11. 2011-11-29 星期二 - 16:17:08.34
  12. 2011-11-29 星期二 - 20:29:25.06
  13. 2011-11-29 星期二 - 21:00:22.50
  14. 2011-11-29 星期二 - 21:02:14.68
  15. 2011-11-29 星期二 - 21:10:43.96
复制代码

评分

参与人数 1PB +2 收起 理由
CrLf + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2011-11-30 00:03:35 | 显示全部楼层

  1. @echo off
  2. for /f " tokens=4 delims= " %%i in (log.txt) do set b=%%i
  3. set b=%b:~0,5%
  4. echo %b%
  5. pause>nul
复制代码
本人新手,看看行不

评分

参与人数 1技术 +1 收起 理由
jellyhk + 1 不错呢!

查看全部评分

发表于 2011-11-30 12:08:49 | 显示全部楼层
  1. @echo off
  2. for /f "tokens=4,5 delims=: " %%a in (log.txt) do echo %%a:%%b
  3. pause
复制代码
发表于 2011-11-30 12:10:37 | 显示全部楼层
本帖最后由 Hello123World 于 2011-11-30 17:20 编辑
  1. @echo off
  2. For /f "tokens=4,5 delims=: " %%i in (log.txt) do Set str=%%i:%%j
  3. echo %str%
  4. pause
复制代码
算法和2楼是一样的,不知道还有没有更好的算法。多谢5楼指点。

评分

参与人数 1PB +5 收起 理由
CrLf + 5 乐于助人

查看全部评分

发表于 2011-11-30 12:26:26 | 显示全部楼层
回复 4# Hello123World


    delims 处有点问题,空格必须位于最后,否则会出错的~
发表于 2011-11-30 12:59:23 | 显示全部楼层
是的 ,空格好像是要放到后面的
发表于 2011-11-30 14:51:14 | 显示全部楼层

  1. 1:
  2. sed -n "${s/.*- //;s/^\([0-5][0-9]:[0-5][0-9]\).*/\1/p}"
  3. 2:
  4. gawk -F"[ :]" "BEGIN{OFS=":"}END{print $4,$5}"
  5. 3:
  6. for /f %%i in ('find /v /c""^<d.txt') do set/a x=%%i-1
  7. for /f "skip=%x% tokens=4,5 delims=: " in (d.txt) do echo;%%i:%%j
复制代码

评分

参与人数 1技术 +1 收起 理由
CrLf + 1 乐于助人

查看全部评分

发表于 2011-11-30 15:52:48 | 显示全部楼层
回复 7# abcdshenji


    sed 那条可以简化一下,sed "$!d;s/.*\(..:..\).*/\1/" LOG.txt
 楼主| 发表于 2011-11-30 16:41:43 | 显示全部楼层
算法和2楼是一样的,不知道还有没有更好的算法。
Hello123World 发表于 2011-11-30 12:10



    哦~ 介个运算不出来,只是一直提示 ECHO处于关闭 ……

多谢2楼。
3楼的是截出全部的时间的说~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 05:32 , Processed in 0.022503 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表