Linux 版 (精华区)
发信人: netiscpu (平淡是真), 信区: Linux
标 题: 一个处理ls-lR文件的小awk程序
发信站: 紫 丁 香 (Mon Dec 14 14:35:26 1998), 转信
发信人: scaner (P.o.t.S), 信区: Linux
标 题: 一个处理ls-lR文件的小awk程序
发信站: BBS 水木清华站 (Sat Nov 28 22:11:53 1998)
用grep搜索大型的ftp的ls-lR文件时,发现找到文件
的绝对路径是件很麻烦的事,就写了个awk小程序,输入
是ls-lR文件,输出是带绝对路径的文件列表.
--- ls-lR.awk ---
BEGIN{
showdate=showname=showsize=0;
if(match(opt,"d")!=0)
showdate=1
if(match(opt,"n")!=0)
showname=1
if(match(opt,"s")!=0)
showsize=1
paths="/"
}
/.*:$/{
oldfs=FS
oldofs=OFS
FS=":"
paths=$1;
gsub(":","/",paths);
paths=sprintf("/%s",paths)
FS=oldfs}
/^[dl-]/{
if(showname)
printf("%s",domain);
printf("%s%s ",paths,$9);
if(showsize)
printf(": %s ",$5);
if(showdate)
printf(": %s %s %s",$6,$7,$8);
printf("\n");
}
--- End ---
现在还有个小问题就是根在路径后的":"我不会去,
只好用傻傻的gsub了.
用法很简单
awk -f ls-lR.awk -v opt=opts -v domain=domain_name ls-lR.file
opts可以是以下几个字符组成的字符串:
d:显示文件时间
n:显示绝对路径前加上domain_name
s:显示文件大小
--
#telnet I.want.to.go
telnet: Unable to connect to remote host: No Route to host
m5m※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: dial2.nuaa.edu.]
--
Enjoy Linux!
-----It's FREE!-----
※ 来源:.紫 丁 香 bbs.hit.edu.cn.[FROM: mtlab.hit.edu.cn]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.842毫秒