Board logo

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

作者: wolfan    时间: 2011-11-29 23:27     标题: [已解决]批处理怎么从文本中每一行里提取特定字符串?

本帖最后由 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
复制代码

作者: slovent    时间: 2011-11-30 00:03

  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
复制代码
本人新手,看看行不
作者: CrLf    时间: 2011-11-30 12:08

  1. @echo off
  2. for /f "tokens=4,5 delims=: " %%a in (log.txt) do echo %%a:%%b
  3. pause
复制代码

作者: Hello123World    时间: 2011-11-30 12:10

本帖最后由 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楼指点。
作者: CrLf    时间: 2011-11-30 12:26

回复 4# Hello123World


    delims 处有点问题,空格必须位于最后,否则会出错的~
作者: xslxslxsl    时间: 2011-11-30 12:59

是的 ,空格好像是要放到后面的
作者: abcdshenji    时间: 2011-11-30 14:51

  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
复制代码

作者: CrLf    时间: 2011-11-30 15:52

回复 7# abcdshenji


    sed 那条可以简化一下,sed "$!d;s/.*\(..:..\).*/\1/" LOG.txt
作者: wolfan    时间: 2011-11-30 16:41

算法和2楼是一样的,不知道还有没有更好的算法。
Hello123World 发表于 2011-11-30 12:10



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

多谢2楼。
3楼的是截出全部的时间的说~




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2