标题: [文本处理] 批处理怎么样可以按机号提取内容到新的文本? [打印本页]
作者: xymc 时间: 2015-10-7 22:44 标题: 批处理怎么样可以按机号提取内容到新的文本?
[文本处理] 批处理怎么样可以按机号提取内容到新的文本?
现在有1.txt格式如下
[A001]
2524524522 a123456
5858222257 a123456
[A002]
24542542345 a123456
25234523458 a123456
[A003]
2345345345 a123456
2345345453 a123456
怎么样可以提取A002号机的帐号到新的文本帐号.txt格式如下
24542542345----a123456
25234523458----a123456
怎么样可以用批处理实现
作者: wankoilz 时间: 2015-10-7 23:27
本帖最后由 wankoilz 于 2015-10-7 23:31 编辑
练习awk:- #&cls&@gawk -f %0 1.txt >账号.txt&exit
- /\[A002\]/,/\[A003\]/{a[++i]=$1"----"$2}
- END {for(j=2;j<i;j++) print a[j]}
复制代码
作者: xymc 时间: 2015-10-7 23:37
回复 2# wankoilz
可以用自带命令吗?
作者: wankoilz 时间: 2015-10-7 23:54
简单用bat做了一个,通用性可能不太好:- @echo off&setlocal enabledelayedexpansion
- for /f "delims=" %%a in (a.txt) do (
- if %%a==[A002] set f=1
- if %%a==[A003] set f=0
- if !f!==1 if not %%a==[A002] echo %%a
- )
- pause
复制代码
作者: xymc 时间: 2015-10-8 00:00
回复 4# wankoilz
你这个是显示A002号机一直到最后的内容了,我只要A002一台机的帐号 不要A003的内容
作者: wankoilz 时间: 2015-10-8 00:02
我这里测试没问题,用的是你发出来的内容!
作者: CrLf 时间: 2015-10-8 00:04
纯批:- @echo off
- (for /f "tokens=1*" %%a in (a.txt) do (
- if %%b#==# (
- set "[A002]="
- set %%a=true
- ) else (
- if defined [A002] echo %%a----%%b
- )
- ))>b.txt
- pause
复制代码
作者: wankoilz 时间: 2015-10-8 00:07
本帖最后由 wankoilz 于 2015-10-8 00:09 编辑
- @echo off&setlocal enabledelayedexpansion
- for /f "delims=" %%a in (a.txt) do (
- set "s=%%a"
- if "!s:~0,6!"=="[A002]" set f=1
- if "!s:~0,6!"=="[A003]" set f=0
- if !f!==1 if not "!s:~0,6!"=="[A002]" echo %%a
- )
- pause
复制代码
楼上的代码思路真好!
作者: 会飞的蜗牛丶 时间: 2015-10-12 11:55
inifile比较容易处理
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |