文本数据过滤实践
时间:2005-04-30 来源:chauney
下面是原始数据片段:(可以用ls -lR 获得自己终端当前所在目录下的所有文件资料)
drw-rw-rw- 1 user group 0 Apr 20 14:52 Game
drw-rw-rw- 1 user group 0 Apr 14 21:47 Picture
drw-rw-rw- 1 user group 0 Apr 20 10:55 _incoming
drw-rw-rw- 1 user group 0 Apr 20 11:11 software
drw-rw-rw- 1 user group 0 Apr 14 21:58 创业园地
-rw-rw-rw- 1 user group 0 Apr 20 13:23 上传文件请用upload:upload账号
/Game:
total 0
drw-rw-rw- 1 user group 0 Apr 20 10:52 办公室游戏集合
/Game/办公室游戏集合:
total 1181113
-rw-rw-rw- 1 user group 89373111 Apr 18 18:54 办公室游戏Christopher Lau——balfast ().exe
-rw-rw-rw- 1 user group 205255269 Apr 18 18:54 办公室游戏Christopher Lau——balfast (10).exe
-rw-rw-rw- 1 user group 40821272 Apr 18 18:56 办公室游戏Christopher Lau——balfast (11).exe
-rw-rw-rw- 1 user group 57572502 Apr 18 19:00 办公室游戏Christopher Lau——balfast (6).exe
-rw-rw-rw- 1 user group 85541427 Apr 18 19:05 办公室游戏Christopher Lau——balfast (7).exe
-rw-rw-rw- 1 user group 80989280 Apr 18 19:11 办公室游戏Christopher Lau——balfast (8).exe
-rw-rw-rw- 1 user group 45174281 Apr 18 19:14 办公室游戏Christopher Lau——balfast (9).exe
/Picture:
total 190076
drw-rw-rw- 1 user group 0 Apr 14 21:47 2004_1006舟山普陀(1)
drw-rw-rw- 1 user group 0 Apr 16 15:32 2005.3.19中科管理论坛
……………………………………………………
下面是过滤出全部目录的脚本:
function filter() {
if [ $# -eq 1 ]
then
{
cat $1 |
awk '{
if( $1 ~ //*:/) print $1;
}' |
awk -F '[/]' '{
for (i=2;i<=NF;i++) {
if($i ~ //*:/) {
printf "||";
for( j=3;j<=i;j++ ) {
printf " |";
if( j==i ) printf "------";
}
print $i;
}
}
}' |
awk '{
gsub(":","");
print $0;
}'
}
else
echo Usage: filter filename
fi
}
呵呵,这里也可以不通过函数来实现,随自己喜欢了
下面是输出片段:
[root@localhost root]source filter.sh
[root@localhost root]filter down
||Game
|| |------办公室游戏集合
||Picture
|| |------2004_1006舟山普陀(1)
|| | |------新建文件夹2
|| |------2005.3.19中科管理论坛
|| |------美丽的紫金港
|| |------面试
|| |------勤创中心
|| | |------风景
|| | |------集体活动--旅游
|| | |------生活照
|| |------校管部活动照片
|| | |------05.3.26大清谷春游
|| | | |------132CANON
|| | | |------133CANON
|| | |------12.12校管部聚餐照片
|| | |------pic
||_incoming
|| |------Documents_incoming
|| |------Ebook_incoming
|| |------Game_incoming
|| |------Others
|| |------Picture_incoming
|| |------Program_incoming
|| |------Software_incoming
|| |------Study_incoming
|| | |------课件请上传到这里
|| |------Temp_incoming
|| |------Virus_incoming
|| | |------病毒库更新
|| | | |------mcafee病毒库更新
|| | | |------norton病毒库更新
|| | | |------卡巴斯基病毒库更新
|| | | |------瑞星病毒库更新
|| | |------流行性病毒专杀工具更新
…………………………………………………………………………