![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-09 20:39 |
共 47,811 主题排行 / 349,897 发帖 / 今日 2 篇 / 48,255 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 求一个在文本首行添加一行的批处理 |
| 可打印版本 1,383 / 12 |
| 第1楼 youaoyi | 发表于 2008-09-18 22:36 |
| 初级用户 发帖 67 积分 154 | |
|
求一个在文本首行添加一行的批处理 求一个可以根据文本中第一行的“|”个数,
在首行新增“0|0|0|0|0|0|” 一行的批处理。 SED CHANGE GAWK 之类的命令都可以,只求速度。 样本: a.txt 1|0757 | 合同 | 其它 | 殷晏 | 200837015029392 | 4000.0 | 2|0752 | 合同 | 经济原因 | 葛宝 | 200000026251 | 10232.35 | 3|2810 | 合同 | 经济原因 | 王传 | 2002810000013079 | 479.0 | 样本 a.txt 第一行有 7个“|”符,希望得到的结果如下: 0|0|0|0|0|0|0| 1|0757 | 合同 | 其它 | 殷晏 | 200837015029392 | 4000.0 | 2|0752 | 合同 | 经济原因 | 葛宝 | 200000026251 | 10232.35 | 3|2810 | 合同 | 经济原因 | 王传 | 2002810000013079 | 479.0 | |
|
| 第2楼 dragonamd | 发表于 2008-09-18 22:39 |
| 中级用户 发帖 100 积分 209 | |
|
文本超过10MB的话还是GAWK快
|
|
| 第3楼 moniuming | 发表于 2008-09-18 23:25 |
| 银牌会员 发帖 574 积分 1,335 来自 广西 | |
|
其它的工具不会,试试这个?
|
|
| 第4楼 HAT | 发表于 2008-09-18 23:26 |
| 版主 发帖 5,017 积分 9,023 | |
| 第5楼 HAT | 发表于 2008-09-18 23:31 |
| 版主 发帖 5,017 积分 9,023 | |
|
只顾着和朋友聊天了,贴代码的速度比 moniuming 兄慢了1分钟,呵呵,思路很相似。
|
|
| 第6楼 youaoyi | 发表于 2008-09-18 23:40 |
| 初级用户 发帖 67 积分 154 | |
|
1、sed "1q" a.txt>new.txt
2、for /F "tokens=1,* delims=|" %i in (new.txt) do ???? 3、copy new.txt + a.txt 第二步需要将这个new.txt中只有一行的文本,“|”之外的都替换成0就可以了, 可是我不会写 。。。。 |
|
| 第7楼 HAT | 发表于 2008-09-18 23:44 |
| 版主 发帖 5,017 积分 9,023 | |
|
取第一行,不必用sed,用set即可。
替换字符不是有人帮你写出来了么?3、4楼的代码能理解否? |
|
| 第8楼 youaoyi | 发表于 2008-09-18 23:53 |
| 初级用户 发帖 67 积分 154 | |
|
嗯 明天睡醒再仔细想想 参悟一下 。。。
说实话,以我目前的水平,尚不能理解3、4楼的代码 我六楼的想法产生的原因是,如果样本是下面这样: 样本: B.txt (最后一位后面没有“|”分隔符) 1|0757 | 合同 | 其它 | 殷晏 | 200837015029392 | 4000.0 2|0752 | 合同 | 经济原因 | 葛宝 | 200000026251 | 10232.35 3|2810 | 合同 | 经济原因 | 王传 | 2002810000013079 | 479.0 也能够生成与之对应的行: 0|0|0|0|0|0|0 1|0757 | 合同 | 其它 | 殷晏 | 200837015029392 | 4000.0 2|0752 | 合同 | 经济原因 | 葛宝 | 200000026251 | 10232.35 3|2810 | 合同 | 经济原因 | 王传 | 2002810000013079 | 479.0 |
|
| 第9楼 pooronce | 发表于 2008-09-19 00:05 |
| 中级用户 发帖 250 积分 484 | |
| 第10楼 pooronce | 发表于 2008-09-19 00:23 |
| 中级用户 发帖 250 积分 484 | |
|
样本B的:
|
|
| 第11楼 HAT | 发表于 2008-09-19 16:43 |
| 版主 发帖 5,017 积分 9,023 | |
|
Re 4楼 关于统计|的个数,namejm 兄给出了另外一个思路(不必逐个判断字符):
|
|
| 第12楼 HAT | 发表于 2008-09-19 17:35 |
| 版主 发帖 5,017 积分 9,023 | |
|
Re 11楼 没有理解清楚 namejm 兄的完整本意,更改如下(不必使用两层if):
|
|
| 第13楼 moniuming | 发表于 2008-09-20 17:10 |
| 银牌会员 发帖 574 积分 1,335 来自 广西 | |
|
Originally posted by youaoyi at 2008-9-18 23:53:
我六楼的想法产生的原因是,如果样本是下面这样: |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |