#!/usr/bin/bash sed 's#\r\n#\n#' | awk $' BEGIN{OFS=""} /^Directory /{ d=substr($0,length($1)+2) next } /^Listing module:/{ d=substr($0, 17) next } (length($0)!=0) { print d,"/",$0 }'
|
cvsnt 的ls命令输出格式为
Directory dir_1
file1
file2
Directory dir_2
Directory dir_3
或, 直接指定了module时是
Listing module: module_1
...
* awk的substr下标是从1 开始的
* 通过windows/cygwin的cvsnt ls命令得到的输出是 CR LF结尾的, 该例中如果不把它先转换为LF结尾的话输出结果会混乱
* cvsnt ls输出中目录信息是送至 stderr的, 所以必需用 2>&1 来重定向, 这个工作必需在cvs ls命令上做, 脚本中不能代劳
cvs ls -Rr tag_name Module 2>&1 | cvs_ls.sh
不过在一个大项目中这个命令也是很慢的.
阅读(1276) | 评论(0) | 转发(0) |