1# How to use: 2# arg1 = Match pattern 3# arg2 = The target path to match 4# arg3 = Additional coment 5 6PATTERN=$1 7target_source=$2 8GREP_PRE_PATTERN='[ ]+' 9GREP_POST_PATTERN='[ ]*\([ &#a-zA-Z_*(),0-9\[\]]*[;]' 10M_GREP_POST_PATTERN='[ ]*\([ &#a-zA-Z_*(),0-9\[\]]*' 11REG=")[ ]*;" 12REPLACE_PAT=$3 13 14function single_line_fun_match() 15{ 16# grep -vP '^//' $target_source -n 17 grep -P "${GREP_PRE_PATTERN}"${PATTERN}"${GREP_POST_PATTERN}" $target_source -n | 18 awk -F: '{print $1}' > tmp 19 20 while read line 21 do 22 sed -i $line"s/^/\/\/$REPLACE_PAT/" $target_source 23 done < tmp 24} 25 26function multi_line_fun_match() 27{ 28 grep -P "${GREP_PRE_PATTERN}"${PATTERN}"${M_GREP_POST_PATTERN}" $target_source -n | 29 grep -vP "${GREP_PRE_PATTERN}"${PATTERN}"${M_GREP_POST_PATTERN}"";" | 30 grep -vP '#define'| 31 grep -vP "${GREP_PRE_PATTERN}"${PATTERN}"${M_GREP_POST_PATTERN}""\)"| 32 awk -F: '{print $1}' > tmp 33 34 # echo "v02" 35 while read line 36 do 37 sed -i "${line},/)[ ]*;/s/^/\/\/$REPLACE_PAT/" $target_source 38 done < tmp 39} 40single_line_fun_match 41multi_line_fun_match 42