- 論壇徽章:
- 0
|
本帖最后由 junhengwoo 于 2016-03-03 14:49 編輯
謝謝你提供的建議,我會(huì)再查一下。
我已經(jīng)寫了一個(gè)簡(jiǎn)單的Shell,基本實(shí)現(xiàn)了這個(gè)功能。
#!/bin/bash
SrcFile="bb.c"
TargetFuncName="DoA"
for LineNumItem in `grep -n ${TargetFuncName} ${SrcFile}| awk -F":" '{print $1}'`
do
FuncName=""
FuncLineNum=1
echo ""
for CtagItem in `ctags -x --c-kinds=f ${SrcFile} | awk '{printf("%s-%s\n", $3, $1)}' | sort -t- -nk 1`
do
CtagFuncName=`echo ${CtagItem} | awk -F"-" '{print $2}'`
CtagBeginLineNum=`echo ${CtagItem} | awk -F"-" '{print $1}'`
if [ ${LineNumItem} -lt ${CtagBeginLineNum} ] ; then
echo "${TargetFuncName} is found: ${FuncName} ${FuncLineNum}"
break
elif [ ${LineNumItem} -eq ${CtagBeginLineNum} ] ; then
echo "${TargetFuncName} definition is found: ${CtagFuncName} ${CtagBeginLineNum}"
break
else
FuncName=${CtagFuncName}
FuncLineNum=${CtagBeginLineNum}
fi
done
done
回復(fù) 10# yjh777
|
|