![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-06 06:22 |
共 48,039 主题排行 / 350,124 发帖 / 今日 2 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [英雄求助帖已结]数据格式转换输出问题求教! |
| 可打印版本 2,026 / 27 |
| 第1楼 hbby | 发表于 2007-10-20 18:11 |
| 中级用户 发帖 99 积分 220 | |
|
[英雄求助帖已结]数据格式转换输出问题求教! 我有data.txt文本,内容如下:
1 135817 C178189 16 ¥32 3 * 3 * 0 31 10 31 3 * * 0 * 10 1 出票 撤销 过期 下载 2 135935 C177784 48 ¥96 3 * * 31 * 310 * 3 31 30 31 * 10 0 1 出票 撤销 过期 下载 3 135943 C178126 16 ¥32 31 30 * 31 0 * 0 3 3 * * 0 * 10 1 出票 撤销 过期 下载 4 135989 C178199 1 ¥2 3 * 3 * * 3 0 3 3 * * 0 0 0 1 出票 撤销 过期 下载 5 135990 C178199 1 ¥2 3 * 3 * 0 3 * 3 3 * * 0 0 0 1 出票 撤销 过期 下载 6 135991 C178199 1 ¥2 3 * 3 * 0 3 0 3 3 * * 0 0 * 1 出票 撤销 过期 下载 7 135992 C178199 1 ¥2 3 * 3 3 * 3 * 3 3 * * 0 0 0 1 出票 撤销 过期 下载 8 135993 C178199 1 ¥2 3 * 3 3 * 3 0 3 3 * * 0 0 * 1 出票 撤销 过期 下载 9 135994 C178199 1 ¥2 3 * 3 3 0 3 * 3 3 * * 0 0 * 1 出票 撤销 过期 下载 10 135995 C178199 1 ¥2 3 0 3 * * 3 * 3 3 * * 0 0 0 1 出票 撤销 过期 下载 我想通过批处理把以上内容转换成以下格式,要求是: 1、删除前5列数据 2、从第6列的数据开始到19列的数据逢两位数和三位数就加括号,如30变成(30) 3、删除后20--24列数据 4、然后输出两个文件分别为1.TXT 2.TXT,1.TXT中包含所有带括号的数据,2.TXT中包含所有不带括号的数据 转换后格式如下 1.TXT 3*3*0(31)(10)(31)3**0*(10) 3**(31)*(310)*3(31)(30)(31)*(10)0 (31)(30)*(31)0*033**0*(10) 2.TXT 3*3**3033**000 3*3*03*33**000 3*3*03033**00* 3*33*3*33**000 3*33*3033**00* 3*3303*33**00* 303**3*33**000 请高手指点,谢谢! [ Last edited by hbby on 2007-10-20 at 11:13 PM ] |
|
| 第2楼 slore | 发表于 2007-10-20 18:14 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
10为什么不加?
|
|
| 第3楼 hbby | 发表于 2007-10-20 18:20 |
| 中级用户 发帖 99 积分 220 | |
|
10也加
|
|
| 第4楼 junchen2 | 发表于 2007-10-20 20:08 |
| 高级用户 发帖 219 积分 537 来自 杭州--半山 | |
|
echo off
@for /f "tokens=6-19" %%a in (a.txt) do ( echo %%a %%b %%c %%d %%e %%f %%g %%h %%i %%j %%k %%l %%m %%n|sed "s//\(&\)/g"|sed "s/ *//g"|more>>hbby_DATE.txt ) sed "/^$/d" hbby_DATE.txt|sed -e "1,3w 1.txt" -e "4,$w 2.txt" del hbby_DATE.txt pause [ Last edited by junchen2 on 2007-10-20 at 08:49 PM ] |
|
| 第5楼 26933062 | 发表于 2007-10-20 20:32 |
| 银牌会员 发帖 879 积分 2,268 | |
|
[ Last edited by 26933062 on 2007-10-20 at 10:55 PM ] |
|
| 第6楼 hbby | 发表于 2007-10-20 20:51 |
| 中级用户 发帖 99 积分 220 | |
|
感谢4、5楼的老哥,四楼大哥输出有问题,还不是很完善
5楼的大哥结果有误,请你们在帮我想想,谢谢 |
|
| 第7楼 vkill | 发表于 2007-10-20 20:57 |
| 金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽 | |
|
看错题目要求.....哎
[ Last edited by vkill on 2007-10-20 at 09:44 PM ] |
|
| 第8楼 junchen2 | 发表于 2007-10-20 20:57 |
| 高级用户 发帖 219 积分 537 来自 杭州--半山 | |
|
我测试没有问题。
|
|
| 第9楼 slore | 发表于 2007-10-20 20:58 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
@echo off&setlocal EnableDelayedExpansion
for /f "tokens=6,7,8,9,10,11,12,13,14,15,16,17,18,19" %%a in (list.txt) do @Call :MySub %%a %%b %%c %%d %%e %%f %%g %%h %%i %%j %%k %%l %%m %%n pause>nul GOTO :EOF :MySub Set StrAll= :loop Set Temp=%1 if %Temp:~0,1%==%1 Set StrAll=%StrAll%%1 if not %Temp:~0,1%==%1 Set StrAll=%StrAll%(%1) shift if "%1" == "" goto :Break goto loop :Break echo %StrAll% 自己最后findstr下括号就可以分开了。 |
|
| 第10楼 hbby | 发表于 2007-10-20 21:12 |
| 中级用户 发帖 99 积分 220 | |
|
各位老大思路都很好,就是希望各位大哥帮我测试下结果,我测试总是不行,谢谢大家
|
|
| 第11楼 vkill | 发表于 2007-10-20 21:23 |
| 金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽 | |
Originally posted by hbby at 2007-10-20 21:12: 如果不行就是你的表述错误,你自己看着改改 了 |
|
| 第12楼 slore | 发表于 2007-10-20 21:23 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
测试过的……
截图现在传不了…… |
|
| 第13楼 lxmxn | 发表于 2007-10-20 21:25 |
| 版主 发帖 4,938 积分 11,386 | |
|
data.awk:
命令行执行: gawk 为外部工具,自己上网找找。 |
|
| 第14楼 hbby | 发表于 2007-10-20 21:26 |
| 中级用户 发帖 99 积分 220 | |
|
junchen2大哥,我导这个数据就出错了
1 137076 C178356 64 ¥128 30 * 3 31 * 31 * 30 3 31 * 0 * 10 1 出票 撤销 过期 下载 2 137077 C178357 16 ¥32 3 * * 31 0 * 0 31 31 * * 0 30 0 1 出票 撤销 过期 下载 3 137104 C178361 16 ¥32 30 * 3 * 10 31 * 3 3 * 31 0 * 0 1 出票 撤销 过期 下载 4 137105 C178362 1 ¥2 1 * 3 1 0 * * 3 * 1 1 * 3 0 1 出票 撤销 过期 下载 5 137147 C178233 64 ¥128 31 30 3 3 * 31 10 30 * * * 0 * 10 1 出票 撤销 过期 下载 6 137196 C178373 32 ¥64 3 10 3 30 * * * 3 * 31 31 30 0 * 1 出票 撤销 过期 下载 7 137197 C178341 8 ¥16 3 31 3 31 0 * 10 * 3 * * 0 * 0 1 出票 撤销 过期 下载 8 137198 C178264 32 ¥64 3 * 3 31 * 3 10 30 3 30 31 * * * 1 出票 撤销 过期 下载 9 137204 C178374 4 ¥8 * 0 3 3 10 3 0 3 * * * 0 * 10 1 出票 撤销 过期 下载 10 137205 C178374 4 ¥8 3 * 3 3 10 3 0 3 * * * 0 * 10 1 出票 撤销 过期 下载 11 137206 C178374 4 ¥8 3 0 * 3 10 3 0 3 * * * 0 * 10 1 出票 撤销 过期 下载 12 137207 C178374 4 ¥8 3 0 3 * 10 3 0 3 * * * 0 * 10 1 出票 撤销 过期 下载 13 137208 C178374 4 ¥8 3 0 3 3 10 * 0 3 * * * 0 * 10 1 出票 撤销 过期 下载 14 137209 C178374 4 ¥8 3 0 3 3 10 3 * 3 * * * 0 * 10 1 出票 撤销 过期 下载 15 137210 C178374 4 ¥8 3 0 3 3 10 3 0 * * * * 0 * 10 1 出票 撤销 过期 下载 16 137211 C178374 4 ¥8 3 0 3 3 10 3 0 3 * * * * * 10 1 出票 撤销 过期 下载 17 137227 C178369 32 ¥64 * 0 31 * * 31 10 3 * * 1 0 10 10 1 出票 撤销 过期 下载 18 137231 C178376 1 ¥2 * 0 3 1 * * 1 1 * 1 3 * 0 1 1 出票 撤销 过期 下载 19 137234 C178378 1 ¥2 * 0 3 1 1 3 * 3 1 * * 0 * 0 1 出票 撤销 过期 下载 20 137246 C178310 384 ¥768 31 * 3 31 * 31 10 31 * * * 10 310 10 1 出票 撤销 过期 下载 |
|
| 第15楼 junchen2 | 发表于 2007-10-20 21:33 |
| 高级用户 发帖 219 积分 537 来自 杭州--半山 | |
|
我刚才未考虑3位数,等我在改一下
[ Last edited by junchen2 on 2007-10-20 at 09:55 PM ] |
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |