search脚本是集成find的文件查找及grep的文本搜索的功能。换言之,就是搜索指定文件中匹配的文本内容。由于find命名仅限于文件查找,而grep命令只能搜索指定文件的文本,但是在实际操作中往往需要在未知的文件中搜索指定的文本内容。由此,find和grep的爱情结晶search便孕育而生了。
闲话少说,直接附上脚本供大家使用,希望能给大家的日常工作提供些方便。
#!/bin/ksh
#
# FILE: search
# DESC: 查找指定字符串
#
# ORIG: Renzo.Liu
# DATE: 2010.05.19
#
#
usage()
{
echo
echo "Usage: search [-d 目录][-f 文件][-i][-w] <字符串>"
echo " -d: 指定搜索路径 <默认当前目录>"
echo " -f: 指定文件名 <默认\"*.c\">"
echo " -i: 忽略大小写"
echo " -w: 匹配单词"
echo
exit
}
# 默认路径
DOPTION="."
# 默认文件
FOPTION="*.c"
while getopts d:f:iw OPTION
do
case ${OPTION} in
d) DOPTION=${OPTARG} ;;
f) FOPTION=${OPTARG} ;;
i) IOPTION="-i" ;;
w) WOPTION="-w" ;;
?) usage ;;
esac
done >/dev/null 2>&1
shift $(($OPTIND -1))
if [ -z "$1" ]; then
usage
fi
eval "find ${DOPTION} -name '${FOPTION}' | xargs grep ${IOPTION} ${WOPTION} '$1'" 2>/dev/null
# End of search