のオプションはnm
マシン間であまり一貫しておらず、出力形式も同じではありません。ただし、通常、出力にファイル名 (オブジェクト ファイルまたはアーカイブ メンバーまたは実行可能ファイル名) の前に付けるオプションがあります。MacOS X では、そのオプションは-o
; Solaris では、-r
または-R
です。Linux では-o
、...
nm -g -o $(<executables.out) | grep -w symbol | awk -F: '{print $1}'
これにより、指定されたシンボルを定義または参照するファイルがリストされます。シンボルを定義するファイルのみを表示するには、'T' (関数) または 'C' (初期化されていないデータまたは共通データ) または 'D' (初期化されたデータ) に注目する必要があります — ただし、System V システムは別のシステムを使用します:
nm -g -o $(<executables.out) | grep -w symbol | grep ' [TCD] ' | awk -F: '{print $1}'
表記法は名前付きファイルを読み取り、その$(<file)
内容を一連の引数として使用しますが、実際にコマンドを実行せずに行います (awk
元の質問で実行されたバックティックを使用した表記法とは異なり、cat
の合理的な代替手段でしたawk
)。
はgrep -w
単語全体としてパターンを検索するため、 を検索しても、、 、 などは出力されprintf
ません。これは GNU拡張です。fprintf
snprintf
vsnprintf
grep