- 论坛徽章:
- 0
|
#!/bin/bash
#对对象进行分类
usage() {
cat <<EOF
Mylocate is an enhancement to locate .
Locate always find thousands of files which always make me crazy . So I decided to write a wrapper to make locate looks more cute.
e.g.
$ ./mylocate.sh -d 3 -k beatles
dirdepth=3
keyword=beatles
142 /home/jldev/music
$ ./mylocate.sh -d 4 -k beatles
dirdepth=4
keyword=beatles
25 /home/jldev/music/beatles.6
25 /home/jldev/music/beatles.3
25 /home/jldev/music/beatles.2
25 /home/jldev/music/beatles.1
24 /home/jldev/music/beatles.5
18 /home/jldev/music/beatles.4
EOF
}
locatem() {
locate -i -r "$keyword"|sed "s;^\(\(/[^/]*\)\{$dirdepth,$dirdepth\}\).*$;
\1;"|awk '{if ($0 in p) {p[$0]++} else {p[$0]=1}}END{ for (i in p) print p,i;}'
|sort -n -r|more
}
while getopts "d:k:" OPT
do
case $OPT in
d) dirdepth="$OPTARG"; echo "dirdepth=$dirdepth" ;;
k) keyword="$OPTARG"; echo "keyword=$keyword" ;;
esac
done
for i in dirdepth keyword ;do
(set|grep "^$i=" 1>/dev/null) || { usage; exit 66; }
done
locatem |
|