-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgp.sh
More file actions
58 lines (53 loc) · 2.27 KB
/
gp.sh
File metadata and controls
58 lines (53 loc) · 2.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#!/bin/sh
#Find string in specify files
#============================================================================
#TODO:
# 1. Ignore comments
#============================================================================
#update log:
# 2013.08.23 better look
# 2013.09.06 provide exact match, case sensitivity option
#============================================================================
precious="" #default no
case_sensitivity="y" #default yes
grep_para="" #default blank
while getopts :hwi OPTION
do
case "$OPTION" in
h) echo "Find the string in specified .c/.h/.clive file in local directory";
echo " gp -h get help info";
echo " gp STRING find file with default option(no case sensitivity, no esact match)";
echo " gp -w STRING exact math";
echo " gp -i STRING no case sensitivity";
exit 1;;
w) precious="y" ; shift; break;;
i) case_sensitivity="n"; shift; break;;
*|?) echo "Invalid parameter"; exit 1;;
esac
done
if [ "$precious" == "y" ]
then
grep_para="-w"
elif [ "$case_sensitivity" == "n" ]
then
grep_para="-i"
fi
if [ -z "$1" ]
then
echo "Input the string need to search"
exit 1
fi
echo "Find [$1] in $PWD ..."
echo
#find . -name "*.c" -o -name "*.h*" | xargs grep -r "$1" | grep -v "grep"
find . \( -path '*/lib/bcmsdk_4.2.4' -o -path '*/lib/bcmsdk_5.2.*' -o -path '*/lib/bcmsdk_5.3.*' \
-o -path '*/lib/bcmsdk_5.4.*' -o -path '*/lib/bcmsdk_5.5.*' -o -path '*/lib/bcmsdk_5.6.*' \
-o -path '*/lib/bcmsdk5.5.*' -o -path '*/lib/bcmsdk_5.7.*' -o -path '*/*/lib/bcmsdk_4.2.4' \
-o -path '*/*/lib/bcmsdk_5.2.*' -o -path '*/*/lib/bcmsdk_5.3.*' -o -path '*/*/lib/bcmsdk_5.4.*' \
-o -path '*/*/lib/bcmsdk_5.5.*' -o -path '*/*/lib/bcmsdk_5.6.*' -o -path '*/*/lib/bcmsdk5.5.*' \
-o -path '*/*/lib/bcmsdk_5.7.0' -o -path '*/lib/bcmsdk_5.10.1' -o -path '*/lib/bcmsdk_6.2.1_ea' \
-o -path '*/lib/bcmsdk_6.*' \) -prune -o \( -name "*.c" -o -name "*.h*" -o -name "*.clive" \) | xargs grep -sn $grep_para "$1" | awk '{ print } END { print "\nMatch number:\t " NR }'
#find . -name "*.c" -o -name "*.h*" | xargs grep -sn "$1"
# -s silent Not show error message
# -n line-number Show match line number
echo