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

[文本处理] 批处理如何提取TXT文本里指定行内容?

包含有指定关键词的相邻2行(指含有2个关键词的行间无空行,看示例便明白,并且内容含有好多乱七八糟的字符文字数字网址等,内容之间的空格和空行也不固定,文本内容比较多,文本文件比较大)全部提取输出到另外一个文本里

例如(原文本内容):

同学:白林
电话:3554880
http://acb.com/

    同学:abc
电话:13955740249
http://201.33.95.251/      ShanghaiA M070


http://129.156.95.251/   
同学 莉莉a1
电话 2889777ag
地址03:e3:4c:5:a3:b7
E行(dBm);
版权 © 2007 保留

四川朋友
fff=yyyy
pppp=uuuuu


要将相邻的“同学”行与其对应的“电话”行一并提取,按电话=地址格式输出到另外一个文本里
要求输出格式 例如(输出文本):
白林=3554880
abc=13955740249
莉莉a1=2889777ag
fff=yyyy
pppp=uuuuu

[ 本帖最后由 wh1234567 于 2010-8-7 11:50 编辑 ]

find "敏感词"   a.txt>>b.txt

TOP

描叙不清怎么给你?
按你的说法,下面的就可以了
findstr "同学 电话" a.txt >b.txt

TOP

  1. @echo off&SETLOCAL ENABLEDELAYEDEXPANSION
  2. for /f "tokens=1* delims=:" %%a in ('findstr /R "同学 电话" a.txt^|findstr /N ".*"') do set /a x=%%a%%2 & call :case!x! %%b >>new.txt
  3. pause&exit
  4. :case1 [同学]
  5. set name=%1%2%3%4
  6. for %%a in (同学 :) do set name=!name:%%a=!
  7. set /p=!name!=<nul
  8. exit /b 0
  9. :case0 [电话]
  10. set tel=%1%2%3%4
  11. for %%a in (电话 :) do set tel=!tel:%%a=!
  12. set /p=!tel!<nul
  13. echo;
  14. exit /b 0
复制代码
1

评分人数

    • wh1234567: 运行后不管用,是不是代码不全啊?PB + 1

TOP

第一,你检查文本文件是不是a.txt,不是请自己动手改。。
第二,检查文本是不是ANSI编码格式的。不是请另存为ANSI格式。。
第三,复制代码请点代码框右上角的“复制”,CTRL+C会导致一行变2行。
第四,如果你什么都不知道...我也不知道怎么跟你说清楚

[ 本帖最后由 caruko 于 2010-8-7 14:06 编辑 ]

TOP

返回列表