
前処理されたCソースファイルを使用しています。さらなる処理のために関数を抽出したいと思います。以下では、特定の機能の開始を見つけることができます。
gcc -DNDEBUG -march=native -E source.c > source.pre
BEGIN=$(grep -n 'static inline int some_function' source.pre | cut -f 1 -d ':')
上記のコードを実行した後、関数が起動する行番号を取得しました。この場合は7812です。
{
C関数の中かっこ(と)の間にあるテキストをキャプチャする方法を考案するのに問題があります}
。に基づいてテキストファイル行の中間部分の抽出、私はこれがすぐに閉じている中括弧()を見つける問題につながると思います}
。
すぐに閉じる中括弧を見つけるには?それとも、Cプリプロセッサファイルで中括弧の間のテキストをキャプチャする方法は?
答え1
}
ソースコードにそれ自体が1行にストレイを置くことができる奇妙なことがないとしましょうsed
。
sed -n '/^static inline int some_function(/,/^}$/p' source.pre