免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: l_penny
打印 上一主题 下一主题

再次跪求犀利脚本 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2010-04-22 17:05 |只看该作者
狠角色

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
12 [报告]
发表于 2010-04-22 17:38 |只看该作者
  1. BEGIN {
  2.     FS="/"
  3.     len=0
  4. }
  5. {
  6.     dict[$2] = $1
  7.     line[len++] = $2
  8. }
  9. END {
  10.     for (i = 0; i < len; ++i) {
  11.         id = str = line[i]
  12.         while (id in dict) {
  13.             id = dict[id]
  14.             str = id"/"str
  15.         }
  16.         print str
  17.     }
  18. }
复制代码
在arch的虚拟机里面正常,但是在minSYS的gawk里面就不正常……不知道为什么……minSYS的printf好像显示%s,还有print显示$0都不正常啊啊啊

论坛徽章:
0
13 [报告]
发表于 2010-04-22 17:53 |只看该作者
我都没看懂意思....  


本身是文件,  内容是id号, 怎么可以得到 每行的 路径???


和路径有啥关系???

论坛徽章:
0
14 [报告]
发表于 2010-04-22 18:02 |只看该作者
本帖最后由 dandy 于 2010-04-22 18:05 编辑

回复 7# ywlscpl

awk -F/ 'NR==FNR{a[$2]=$0}NR>FNR{while ($1 in a) sub("^"$1,a[$1]);print}'


这么犀利的怎么不膜拜下,
都去搞那么复杂的干嘛?????

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
15 [报告]
发表于 2010-04-22 18:02 |只看该作者
可用用递归函数
  1. $ awk -F / 'NR==FNR{f[$2]=$1;next }{print path($1)"/"$2} func path(i, t){ t=i;if(!(t in f))return t;else if (f[t] in f)return path(f[t])"/"t;else return f[t]"/"t}' urfile urfile
复制代码

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
16 [报告]
发表于 2010-04-22 18:17 |只看该作者
回复 7# ywlscpl


    强!!学习学习!!

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
17 [报告]
发表于 2010-04-22 18:32 |只看该作者
awk -F/ 'NR==FNR{a[$2]=$0}NR>FNR{while ($1 in a) sub("^"$1,a[$1]);print}' file file
ywlscpl 发表于 2010-04-22 16:33



    太犀利了……学习之……

论坛徽章:
0
18 [报告]
发表于 2010-04-22 22:23 |只看该作者
太强了,都是强人,膜拜膜拜~~~{:3_189:}

论坛徽章:
2
IT运维版块每日发帖之星
日期:2016-02-10 06:20:01IT运维版块每日发帖之星
日期:2016-02-11 06:20:00
19 [报告]
发表于 2010-04-22 22:23 |只看该作者
学习

论坛徽章:
0
20 [报告]
发表于 2010-04-23 00:37 |只看该作者
活说我没看懂
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP