联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!
>>%file_s% gawk 'BEGIN{FS="\t";OFS="_"}FILENAME=="list.xls"^&^&FNR==1{for (i=1;i^<66;i++) {if ($i=="Google results") gr=i;if ($i=="Google suggestion") gs=i; if ($i=="Google sponsored #") gsp=i; if ($i=="Google results w/o") grw=i; if ($i=="Google suggestion w/o") gsw=i; if ($i=="Google sponsored # w/o") gspw=i; if ($i=="Google #1 w/o") g1w=i; if ($i=="Google #1 w/") g1=i; if ($i=="URLmatch") um=i;}}FILENAME=="list.xls"^&^&FNR^>1{ggr[$1]=$gr;ggs[$1]=$gs;ggsp[$1]=$gsp;ggrw[$1]=$grw;ggsw[$1]=$gsw;ggspw[$1]=$gspw;gg1w[$1]=$g1w;gg1[$1]=$g1,ugm[$1]=$um;}FILENAME=="%file_s:~0,-1%_gg"{if ($30=="Error" ^|^| $33=="Error"){$30=ggr[$1]; $31=ggs[$1]; $32=ggsp[$1]; $33=ggrw[$1]; $34=ggsw[$1]; $35=ggspw[$1]; $36=gg1w[$1]; $37=gg1[$1]; $58=ugm[$1]} print}' list.xls %file_s:~0,-1%_gg
Originally posted by clian76 at 2008-5-23 10:27 PM: 这是做什么用的?代码太复杂了
Originally posted by pooronce at 2008-5-23 22:49: 查找确认列所在,然后将这些列的数据匹配到后面一个文件里去
Originally posted by junchen2 at 2008-5-24 12:49 PM: gg1[$1]=$g1,ugm[$1]=$um;}FILENAME=="%file_s:~0,-1%_gg"{if ^ 上面就有一处逗号要变分号。 写成awk脚本,多加几个print和错误提示,或许更好发现问题所在,Good luck.
Originally posted by pooronce at 2008-5-27 13:50: 多谢多谢 汗,自己也太大意了这,检查几次都没发现这个逗号的问题。改好后就好了-_-# 之前都郁闷得放弃绕过了,现在终于解决了:D 另请教 ...
Originally posted by lxmxn at 2008-5-28 03:40 AM: 其实你完全可以把这段代码写成一个 awk 脚本,然后由 awk -f script.awk 来调用这个脚本,要传递给 awk 脚本的变量可以用 awk 的-v参数带入脚本。 在脚 ...
Originally posted by pooronce at 2008-5-28 09:17: 像这样的长命令还有很多在用:( 写成awk脚本形式后错误信息会更明了一些吗? 如果是的话我倒是可以考虑用脚本来调试,没错了再转回长命令 ...