![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-08 20:10 |
共 47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [已解决]这段awk代码为何总是出错? |
| 可打印版本 854 / 9 |
| 第1楼 pooronce | 发表于 2008-05-23 15:30 |
| 中级用户 发帖 250 积分 484 | |
|
[已解决]这段awk代码为何总是出错? 从前面文件中读出内容,匹配到后面文件里去。前面自动判断需要更正的列的数据所在:
前面都已经测试过了,但加上后面一段数组改数据后,总是出错,错误信息又不明显,检查n次了,总是看不出错在哪里啊~ 高手帮忙检查一下吧,谢谢 [ Last edited by pooronce on 2008-5-27 at 02:44 PM ] |
|
| 第2楼 clian76 | 发表于 2008-05-23 22:27 |
| 中级用户 发帖 162 积分 363 | |
|
这是做什么用的?代码太复杂了
|
|
| 第3楼 pooronce | 发表于 2008-05-23 22:49 |
| 中级用户 发帖 250 积分 484 | |
Originally posted by clian76 at 2008-5-23 10:27 PM: 查找确认列所在,然后将这些列的数据匹配到后面一个文件里去 |
|
| 第4楼 junchen2 | 发表于 2008-05-24 12:49 |
| 高级用户 发帖 219 积分 537 来自 杭州--半山 | |
|
gg1[$1]=$g1,ugm[$1]=$um;}FILENAME=="%file_s:~0,-1%_gg"{if
^ 上面就有一处逗号要变分号。 写成awk脚本,多加几个print和错误提示,或许更好发现问题所在,Good luck. |
|
| 第5楼 lxmxn | 发表于 2008-05-24 12:50 |
| 版主 发帖 4,938 积分 11,386 | |
Originally posted by pooronce at 2008-5-23 22:49: 你是在什么环境下使用的这段代码呢? 如果是 CMD 下面,那么这段代码可能运行不了,需要把包含代码的单引号(')改成双引号,而代码里面的双引号需要用反斜线转义(\")。 另外,写代码的时候最好不要写成这种“一句话式”的代码,容易给看代码的人难一种阅读和维护的感觉。 |
|
| 第6楼 lxmxn | 发表于 2008-05-24 12:52 |
| 版主 发帖 4,938 积分 11,386 | |
|
另外再多说一句,不是新会员了,发帖的时候应该注意标题应该简洁表意。
先帮你修改过来。 |
|
| 第7楼 pooronce | 发表于 2008-05-27 13:50 |
| 中级用户 发帖 250 积分 484 | |
Originally posted by junchen2 at 2008-5-24 12:49 PM: 多谢多谢 汗,自己也太大意了这,检查几次都没发现这个逗号的问题。改好后就好了-_-# 之前都郁闷得放弃绕过了,现在终于解决了:D 另请教lxmxn,怎么可以优化啊。另代代码内部能加注释的吗? 据说cmd最大命令长度是1000个字符(求证,这个说法准确吗)。 这里已经到八百多个了,就算能加注释,也行容易撑破1000了:( |
|
| 第8楼 lxmxn | 发表于 2008-05-28 03:40 |
| 版主 发帖 4,938 积分 11,386 | |
Originally posted by pooronce at 2008-5-27 13:50: 其实你完全可以把这段代码写成一个 awk 脚本,然后由 awk -f script.awk 来调用这个脚本,要传递给 awk 脚本的变量可以用 awk 的-v参数带入脚本。 在脚本里面加注释可以以 # 开头,一句话式的脚本试了一下,貌似无法添加注释。 另外,命令行的长度的确有限制,至于是多少字节已经不记得了,你可以测试一下。 |
|
| 第9楼 pooronce | 发表于 2008-05-28 09:17 |
| 中级用户 发帖 250 积分 484 | |
Originally posted by lxmxn at 2008-5-28 03:40 AM: 像这样的长命令还有很多在用:( 写成awk脚本形式后错误信息会更明了一些吗? 如果是的话我倒是可以考虑用脚本来调试,没错了再转回长命令。 ……命令行长度还没试出来过,到目前为止,这个命令是我最长的一个 |
|
| 第10楼 lxmxn | 发表于 2008-05-28 20:55 |
| 版主 发帖 4,938 积分 11,386 | |
Originally posted by pooronce at 2008-5-28 09:17: 写成脚本不保证错误信息更加详细,但是最起码可以将代码缩进,有利于阅读和维护! |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |