![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-15 12:42 |
共 47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,268 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 如何用批处理按标记分割文件 |
| 可打印版本 13,855 / 30 |
| 第16楼 willsort | 发表于 2005-12-09 15:25 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
Re All:
首先,发布一则启事: 因本人的个人电脑现已搬至别处,与网络隔绝,以作封闭式训练之用,时间至少两周。此段时间内,只有闲暇时间可以在网吧或他人电脑处登录论坛,所以暂时恢复在线收发、离线阅复的上网习惯,因此必然会导致阅读频率降低、回复周期延长以及管理力度减弱,敬请管理层和广大朋友谅解! tigerpower兄所言之情状,恰有以下三点感受,列述于下:以古语云,知其然而不知其所以然;用如今的观点讲,明白结果未必懂得过程;拿民间的俗话说,听过老虎会吃人的多,见过老虎咋吃人的少。 我于awk,算得上“鼎鼎大名,如雷贯耳;奈何天意弄人,缘悭一识”。这个源出于 Unix 家族的命令行工具,我在学习批处理的过程曾偶有涉猎,却总是未及深入。除却与无奈何兄相似的畏难避险的人之常情外,尚有一份维护批处理血统纯正的崖岸自高在内。但我亦深知,工具的价值,就是在适当的时间、适当的场合被适当的人所使用,一味逃避不过是掩耳盗铃的鸵鸟心态而已。现在,看到无奈何兄比我更早迈出了这一步,欣喜之余不免惭愧。 现已作决定,与其站在门外为看到热闹而喝彩,不如坐于阁内因识出三昧而击节——awk,是时候接触了。 |
|
| 第17楼 yhsean | 发表于 2005-12-09 19:28 |
| 初级用户 发帖 26 积分 90 | |
|
得到各位的帮助。太感谢了。请二位推荐 UNIX最 常用的命令
学习之,以解决实际工作诸多问题 向前辈致敬 |
|
| 第18楼 tigerpower | 发表于 2005-12-09 20:34 |
| 中级用户 发帖 99 积分 377 | |
|
原来如此,我还以为板主已经见到了偶上次用mawk的解法,呵呵.
本来是想看看各位如何用sed解题,所以就把那张贴给删了 ![]() |
|
| 第19楼 willsort | 发表于 2005-12-11 21:58 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
Re tigerpower:
我未见到兄的 mawk 的解法,论坛本来就是百花齐放之地,所以还有兄不要藏珍才好。 今天下午,终于有空看了部分中文的 awk 文档,根据自己的初浅认识,仍然回应楼主最初的主题,编写了我的第一个 awk 脚本,因为与无奈何兄脚本尚有一些区别,所以贴上来,以抛砖引玉。 Re 无奈何: 注意到兄的 awk 脚本中是采用一个 temp 变量来做中转的,与print>>相比,字符串变量的连接后再整体输出有可能效率更高一些吗?不知道楼主是否还有心思做一下这方面的测试?因为在我这里不太容易找到规模较大的测试文件。 [ Last edited by willsort on 2005-12-11 at 22:11 ] |
|
| 第20楼 无奈何 | 发表于 2005-12-11 23:43 |
| 荣誉版主 发帖 356 积分 1,338 | |
|
to yhsean
关于你想了解“UNIX常用的命令”,我在 7 楼已经提到一个工具包,你可以找来玩玩。 to willsort 兄的学习速度够快的!中间变量的使用肯定会降低效率的,但那时是现学现用的,还不知道close()函数,而直接调用system命令更改文件名又失败,没有办法下只能投机应对,但那是我的第一个 AWK 程序,不打算修改了。最好兄能将你完整的程序贴出来,给本帖问题作个完美的解答吧。 |
|
| 第21楼 无奈何 | 发表于 2005-12-12 14:19 |
| 荣誉版主 发帖 356 积分 1,338 | |
|
to tigerpower
mawk 的速度和稳定性是很出众的,可遗憾的是资料太少了。 你的代码 gawk 不能通过,我觉得你的这段代码应该是通用的,结果换了低版本的 gawk 通过了,让我狂晕。 |
|
| 第22楼 tigerpower | 发表于 2005-12-12 21:24 |
| 中级用户 发帖 99 积分 377 | |
Originally posted by 无奈何 at 2005-12-12 14:19: 哈哈,gawk我到是没试过。 GNU utilities for Win32这个东东我也用,不过其中的join有bug,兄弟们用起来要当心啊! |
|
| 第23楼 无奈何 | 发表于 2005-12-12 22:12 |
| 荣誉版主 发帖 356 积分 1,338 | |
|
较新版本的 GAWK 我再也不敢用了,稳定性太差了。今天练习了一段程序,较新的几版 GAWK 居然得到匪夷所思的结果,而旧版和其它版的 AWK 完全正常。同样的脚本得到不同的结果,这比无法运行通过要严重的多,太难以让人接受了。
|
|
| 第24楼 tigerpower | 发表于 2005-12-13 08:33 |
| 中级用户 发帖 99 积分 377 | |
|
GNU的旗舰产品是gcc和emacs, 其他软件的代码质量和运行性能值得商榷.
但是在大部分Linux论坛里把Linux和GNU吹得天花乱坠,主观色彩太浓烈了. 平时我也用Linux, 有很多软件我觉得BSD版本的更为优秀 ![]() |
|
| 第25楼 Climbing | 发表于 2005-12-13 09:20 |
| 铂金会员 发帖 2,753 积分 6,962 来自 河北保定 | |
|
看完这个帖子良久,我的大脑仍然是一片晕。Unix的东西实在搞得太复杂,非我这种简单的大脑可以理解的。
|
|
| 第26楼 yhsean | 发表于 2005-12-21 12:54 |
| 初级用户 发帖 26 积分 90 | |
Originally posted by 无奈何 at 2005-12-8 13:16: 再次消化 无奈何兄脚本 发现可以这样使其简洁点 $0~/^R.*/? { print temp>substr($1,3)".txt"; temp = "" } : temp = (temp $0 ) [ Last edited by yhsean on 2005-12-22 at 13:29 ] |
|
| 第27楼 LiveOnLove | 发表于 2005-12-21 14:43 |
| 中级用户 发帖 161 积分 493 来自 ZHCN | |
|
看得有点晕。@_@
|
|
| 第28楼 yhsean | 发表于 2005-12-28 19:41 |
| 初级用户 发帖 26 积分 90 | |
|
不好意思,技术是严谨的,纠正我上次的一个错误
{ if ($1 !~ /^R\*/) { print $0>>"temp" } else { close("temp") system("ren temp "substr($0,3)".txt") } } 代码输出比用变量中转一次性输出快,我想应该这样去理解 不用中转变量,处理完就会释放内存中的信息,用中转变量的话,如果中转变量的容量过大的话,速度,直线下降,这在测试一个10M文本内容的出的结果 特此更正,以免误导人! |
|
| 第29楼 vkill | 发表于 2007-02-12 10:29 |
| 金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽 | |
|
用sed的,原理上可以的,只是针对这个专门的
[ Last edited by vkill on 2007-2-12 at 10:42 AM ] |
|
| 第30楼 jmz573515 | 发表于 2007-02-12 11:11 |
| 银牌会员 发帖 464 积分 1,212 | |
|
发一个VBS的,揍个热闹
[ Last edited by jmz573515 on 2007-2-11 at 10:35 PM ] |
|
| 上一页 1 2 3 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |