7

次のことを行うための正しいコマンドに苦労しています:

特定のシンボルを含むすべての共有ライブラリ (*.so) を検索します。

これは私が試したことです:

find -iname '*.so*' -exec nm {} \; | grep -H _ZN6QDebugD1Ev

上記は、見つかったシンボルを含むいくつかの出力を提供しますが、シンボルが発生したファイル名を特定しません.grepがstdinから供給されているため、ファイル名を出力するようにgrepに指示するフラグは失われます.

(standard input):         U _ZN6QDebugD1Ev
(standard input):         U _ZN6QDebugD1Ev
(standard input):         U _ZN6QDebugD1Ev
(standard input):         U _ZN6QDebugD1Ev
(standard input):0015e928 T _ZN6QDebugD1Ev
(standard input):         U _ZN6QDebugD1Ev
(standard input):         U _ZN6QDebugD1Ev
(standard input):         U _ZN6QDebugD1Ev

別の試み:

find -iname '*.so*' -exec nm {} \; -exec grep _ZN6QDebugD1Ev {} \;

2 つの exec は完全に独立しているため、これは機能しません。

私は何をすべきか?

4

1 に答える 1