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