免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2759 | 回复: 6
打印 上一主题 下一主题

如何从tree中取出文件路径 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-10-07 14:32 |只看该作者 |倒序浏览
是这样的
我的svn有很多个repository, 而且还在增加,每次由开发部门提出需求,如需要新增一个什么repository, 包括其目录结构( 一般是相对固定的), 权限列表等

然后由我们负责创建并分发权限

现在我想把这个过程做成自动的,即
由一个perl脚本完成相关的工作, 现在脚本已完成一部分, 遇到一个问题:如何从tree状图(这个名称是自己取的)中得到文件或者目录的真实路径 , 在得到路径后就用svn工具在svn服务器上创建相应的目录

tree状图由系统命令生成:如下所示:
|-- Dev
|   |-- Dev_Doc
|   |-- Res
|   |-- Src
|   `-- Swf
`-- Test
    |-- Publish
    `-- Test_Doc


请提供个思路 谢谢

我在完成后会把脚本贴上来 请大家指导

论坛徽章:
0
2 [报告]
发表于 2008-10-07 15:05 |只看该作者
我来抛砖引玉吧,
从第一行开始, 搜索要找的目录/文件名, 没找到的话判断是否进入下层目录或者回到上层目录(用正则表达式匹配应该可以实现).
这样在找到文件/目录的时候就有一个完整的路径列表了.

论坛徽章:
0
3 [报告]
发表于 2008-10-07 15:12 |只看该作者
不是从文件系统是得到文件路径  而是从这段tree生成的文字中分析出来  

原因是这样: 不想每次建立svn结构的时候还得在本机上建一套文件结构  所以想直接从这个文件结构树状图直接“还原”出文件结构

论坛徽章:
0
4 [报告]
发表于 2008-10-07 15:16 |只看该作者
就是搜索这个tree文本啊,  每多 一个 | 就表示进入了下一层目录, 上一行匹配到的目录名就是上层目录名
每少一个| 就表示进入了上一层目录

[ 本帖最后由 con 于 2008-10-7 15:17 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2008-10-07 15:29 |只看该作者
了解 谢谢哈

论坛徽章:
0
6 [报告]
发表于 2008-10-08 13:42 |只看该作者
tree | perl -e 'while(<>){ if(m/(.+?).-- (.+)/){pop @path if((length $1)/4 < @path);push @path,$bak if((length $1)/4 > @path); print join("/",@path), "/$2\n";$bak=$2;}} '

论坛徽章:
0
7 [报告]
发表于 2009-05-12 14:30 |只看该作者
谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP