2011年2月9日水曜日

ソースコードから「asm」という文字を探す(だけの)スクリプト

RTOS関係でゴニョゴニョしているとアセンブラで記述された箇所のみを抜き出したくなることがあります。
今日はショートブレイクということで、ソースコードから「asm」という文字を探す(だけの)スクリプトを作ってみました。

#!/bin/sh
FILELIST=`find . -name "*.[c|h]"`
KEYWORD="asm"
for FILE in $FILELIST
do
    OUT=`grep $KEYWORD $FILE`
    if [ ! "$OUT" = "" ]
    then
        echo "=== [$FILE] ======================="
        grep -i -n $KEYWORD $FILE
    fi
done

これを使うと例えば以下のような出力が得られます。

=== [./FreeRTOS_Library/portable/port.c] =======================
134:    __asm volatile (
153:    __asm volatile(
222:    __asm volatile
=== [./FreeRTOS_Library/portable/portmacro.h] =======================
113:    __asm volatile                                                                          \
125:    __asm volatile                                                  \
=== [./SimpleDemo/cr_startup_lpc17.c] =======================
217:    __asm("    ldr     r0, =_bss\n"

findを使ってCソースとヘッダを探してgrepするだけのシェルスクリプトですが、意外に便利です。

0 件のコメント:

コメントを投稿