中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-12 23:53
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS批处理 & 脚本技术(批处理室) » 大家好我记事本里的数字想进行换行处理
可打印版本  895 / 9
第1楼 jiehi007 发表于 2009-12-23 22:36
新手上路 发帖 5 积分 5
大家好我记事本里的数字想进行换行处理
数字之间是 空格分隔的,其中包括一位数字,两位数字的 数据。
数据中的前2个数据后加一换行,之后的每隔16个数据换行一次
在记事本中是以上那种排列的:
90 44 6 5 6 4 6 4 6 5 5 5 6 4 6 5 6 4 6 16 6 16 6 16 6 16 6 16 6 15 6 16 6 16 6 5 6 16 6 5 6 16 6 4 6 4 6 4 6 5 5 16 6 5 6 16 6 5 6 16 6 16 6 16 6 16

我现在想把记事本中的数据这样排列:
90 44 第一次两个数据换行一次
6 5 6 4 6 4 6 5 5 5 6 4 6 5 6 4 以后的都是16个数据 换行一次
6 16 6 16 6 16 6 16 6 16 6 15 6 16 6 16
6 5 6 16 6 5 6 16 6 4 6 4 6 4 6 5
5 16 6 5 6 16 6 5 6 16 6 16 6 16 6 16

谢谢大家帮忙了
第2楼 Hanyeguxing 发表于 2009-12-24 01:12
银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂
使用sed转换空格为换行sed "s/ /\n/g" a.txt
用for提取文本到b.txt,输出时使用set/p。
同时使用if判断:
1,当行号等于2执行一次echo.。
2,当行号大于2执行:用行号除以16,当余数等于15时,使用一次echo.进行换行。

[ Last edited by Hanyeguxing on 2009-12-24 at 07:42 ]
第3楼 yishanju 发表于 2009-12-24 07:35
银牌会员 发帖 1,357 积分 1,488
其实只用FR或者SED之类的就可以完成
fr -ric:"(\d\d \d\d)" -t:"\1\r\n" x.txt
fr -ric:"({\d+ }{16,16})" -t:"\1\r\n" x.txt

先贴上来,一会再测试看行不行。
第4楼 yishanju 发表于 2009-12-24 07:41
银牌会员 发帖 1,357 积分 1,488
经过测试,小改一下,可以了
fr -ric:"(\d\d \d\d) " -t:"\1\r\n" x.txt
fr -ric:"((\d+ ){16,16})" -t:"\1\r\n" x.txt
第5楼 jiehi007 发表于 2009-12-24 10:05
新手上路 发帖 5 积分 5
谢谢各位帮忙,那些代码怎么使用呀?我不会用那个sed
最好使搞成一个批处理或者脚本什么的,直接双击就达到效果,是最方便的,再次麻烦各位大侠了
第6楼 不得不爱 发表于 2009-12-24 19:58
超级版主 发帖 2,044 积分 5,310 来自 四川南充

自动从a.txt里读入1行 写到tmp.txt里

[ Last edited by 不得不爱 on 2009-12-24 at 20:11 ]
第7楼 mountvol 发表于 2009-12-24 20:04
初级用户 发帖 117 积分 186

保存为*.vbs到a.txt同目录下,会自动写到b.txt中,注意不要被覆盖了。
第8楼 mountvol 发表于 2009-12-24 20:24
初级用户 发帖 117 积分 186

用bat处理起来就怕一行的长度太大,另外处理特殊字符麻烦。
第9楼 pdanniel66 发表于 2009-12-25 04:29
初级用户 发帖 64 积分 68
学习了,谢谢
第10楼 jiehi007 发表于 2009-12-25 13:54
新手上路 发帖 5 积分 5
测试都通过了,谢谢你们,佩服
圣诞节 快乐呀
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023