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

[文本处理] 批处理如何提取日志文件中一段内容?

[复制链接]
发表于 2012-11-19 13:40:35 | 显示全部楼层 |阅读模式
将****************Check OS Filesystem  Status**********************
以下,*********check database status****************以上的内容提取到新文件。
  1. ***************Check OS Filesystem  Status**********************



  2. Filesystem    GB blocks      Free %Used    Iused %Iused Mounted on
  3. /dev/hd4           1.00      0.45   55%     6574     6% /
  4. /dev/hd2           4.00      1.59   61%    41047    10% /usr
  5. /dev/hd9var        2.00      1.16   43%    97795    27% /var
  6. /dev/hd3           5.00      3.12   38%     2000     1% /tmp
  7. /dev/fwdump        8.00      8.00    1%        4     1% /var/adm/ras/platform
  8. /dev/hd1           2.00      2.00    1%       27     1% /home
  9. /proc                 -         -    -         -     -  /proc
  10. /dev/hd10opt       2.00      1.91    5%     1752     1% /opt
  11. /dev/oraclelv     40.00     12.36   70%   133006     5% /oracle
  12. /dev/fslv00       50.00     49.88    1%        5     1% /reparch
  13. /dev/arch1lv      52.00     44.54   15%       21     1% /odsarch1
  14. /dev/ora_explv     50.00     27.60   45%       28     1% /ora_exp
  15. /dev/fslv01      390.75     85.97   78%      108     1% /orabackuplv
  16. ods2:/odsarch2      2.00      1.66   17%     6461     2% /odsarch2
  17. /dev/goldengatelv    170.25    160.25    6%      233     1% /gold

  18. *********check database status****************
复制代码
发表于 2012-11-19 14:00:22 | 显示全部楼层
本帖最后由 tmplinshi 于 2012-11-19 14:01 编辑
  1. sed -r "/\*+Check OS Filesystem  Status\*+/,/\*+check database status\*+/!d" 1.log >o.log
复制代码
sed 下载地址:
http://bathome.net/thread-15605-1-4.html
发表于 2012-11-19 14:30:24 | 显示全部楼层
本帖最后由 tmplinshi 于 2012-11-19 14:32 编辑
  1. @echo off
  2. setlocal

  3. set inputfile="1.log"
  4. set bline="***************Check OS Filesystem  Status**********************"
  5. set eline="*********check database status****************"
  6. set outputfile="output.log"

  7. set "_echo_start=" >%outputfile%

  8. for /f "tokens=1,* delims=:" %%a in (' findstr /n .* %inputfile% ') do (
  9.     if not defined _echo_start (
  10.         if /i "%%b" == %bline% (
  11.             echo %%b
  12.             set _echo_start=::
  13.         )
  14.     ) else (
  15.         echo,%%b
  16.         if /i "%%b" == %eline% goto finish
  17.     )
  18. ) >>%outputfile%

  19. :finish
  20. echo finish
  21. pause
复制代码
 楼主| 发表于 2012-11-19 16:04:39 | 显示全部楼层
非常好用,谢谢楼上的两位,正在进一步改进中,力求完美高效,省事。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 22:15 , Processed in 0.015745 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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