标题: [文本处理] 批处理如何提取TXT文本里指定行内容? [打印本页]
作者: wh1234567 时间: 2010-8-6 10:54 标题: 批处理如何提取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 编辑 ]
作者: cjiabing 时间: 2010-8-6 11:59
find "敏感词" a.txt>>b.txt
作者: caruko 时间: 2010-8-7 02:27
描叙不清怎么给你?
按你的说法,下面的就可以了
findstr "同学 电话" a.txt >b.txt
作者: caruko 时间: 2010-8-7 04:49
- @echo off&SETLOCAL ENABLEDELAYEDEXPANSION
- 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
- pause&exit
-
- :case1 [同学]
- set name=%1%2%3%4
- for %%a in (同学 :) do set name=!name:%%a=!
- set /p=!name!=<nul
- exit /b 0
-
- :case0 [电话]
- set tel=%1%2%3%4
- for %%a in (电话 :) do set tel=!tel:%%a=!
- set /p=!tel!<nul
- echo;
- exit /b 0
复制代码
作者: caruko 时间: 2010-8-7 14:03
第一,你检查文本文件是不是a.txt,不是请自己动手改。。
第二,检查文本是不是ANSI编码格式的。不是请另存为ANSI格式。。
第三,复制代码请点代码框右上角的“复制”,CTRL+C会导致一行变2行。
第四,如果你什么都不知道...我也不知道怎么跟你说清楚
[ 本帖最后由 caruko 于 2010-8-7 14:06 编辑 ]
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |