[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

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

本帖最后由 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

TOP

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

TOP

非常好用,谢谢楼上的两位,正在进一步改进中,力求完美高效,省事。

TOP

返回列表