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