0

文字列CHAR*getenvを含むすべてのファイル名を表示したいのですが、getenvは関数です。

私はこのクエリを使用しています

find . -type f -exec grep -l "CHAR * getenv" {} \;

しかし、それは望ましい出力を与えていません。文字列CHARgetenvのファイル名を表示していますが、CHAR*getenvは表示していません。

4

3 に答える 3

1
find . -type f -exec grep -l "CHAR \* getenv" {} \;

また

grep -rl "CHAR \* getenv" *

*は、先行する文字(この場合はスペース)が0個以上あることを意味するため、エスケープする必要があります。

于 2012-07-23T06:54:46.447 に答える
0

grep -Fを使用して、検索文字列が正規表現として扱われないようにします。

find . -type f -exec grep -lF "CHAR * getenv" {} \;
于 2012-07-23T06:52:28.637 に答える
0

問題は、grepコマンドが実行される前にbash展開が行われることです。したがって、行が変換されます。find . -type f -exec grep -l CHAR smt getenv {} \; find . -type f -exec grep -l CHAR smt2 getenv {} \;. 二重引用符を一重引用符に置き換えると、bash展開が行われないため、問題が解決するはずです。

于 2012-07-23T06:56:33.240 に答える