search脚本

#!/bin/bash
set -o noglob
usage()
{
 echo "Usage: search [-e] [-f] regex [files] [directory]"
 echo "  -e: use extended regular expression"
 echo "  -f: display full path"
 echo "      default files to find is /"*/""
 echo "      default starting directory is /"./""
}

CMD_FILE=/tmp/.searh.$USER.cmd
OUTPUT_FILE=/tmp/.search.$USER.log

flag_egrep=
flag_fullpath=

cmdline=$(basename $0)" $@"
args=$(getopt -q -u -o "efh" -- "$@")
set --$args

for i
do
 case "$i"
 in
 -e)
  flag_egrep='-E';
  shift;;
 -f)
  flag_fullpath='y';
  shift;;
 -o)
  echo oarg is "'"$2"'"; oarg="$2"; shift;
  shift;;
 -h)
  usage;
  exit 0;;
 --)
  shift; break;;
 esac
done

REG_EXP=$1
FILES=$2
START_DIR=$3

## display the lastest searching result
if [ -z "$REG_EXP" ] ; then
 echo -ne "Excuting "
 cat $CMD_FILE 2>/dev/null
 cat $OUTPUT_FILE 2>/dev/null
 exit 0
fi

echo "$cmdline" >$CMD_FILE

[ -z "$START_DIR" ] && START_DIR='.'
if [ "$flag_fullpath" = "y" ] ; then
 START_DIR=$(cd $START_DIR; pwd)
fi
[ -z "$FILES" ] && FILES="/.?.*"
find "$START_DIR" -regex "$START_DIR/$FILES" -xdev -type f -follow -exec grep $flag_egrep -I -l "$REG_EXP" {} /; 2>/dev/null | tee $OUTPUT_FILE

exit $?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值