質問: lsでパイプすると、solarisのgrepが機能しません solarisで以下のコマンドを使用していますls -l | grep '*proc*' しかし、それは機能していません。 「xref_proc.complete」のように名前に「proc」が含まれているファイルがたくさんありますが、上記のコマンドを使用すると出力が表示されません。 ls *proc*を使用すると、機能しますが、grepでは機能しません。ありがとう
回答: tl; dr数量詞は必要ありません。procのgrepだけです。ls | grep proc 長いバージョンls行のアスタリスクは、grep行のアスタリスクと同じではありません。コマンドラインにエスケープされていないアスタリスクがある場合、シェルはlsがそれを認識する前にそれを展開します。これは、 globbing と呼ばれます。アスタリスクだけで、現在のディレクトリ内のすべてのファイルに展開されます。たとえば、echo *。 *proc* globは、procを含むすべてのファイルに展開されます。grep isで使用しているアスタリスクは一重引用符で囲まれているため、grepによって解釈されます。ただし、grepはデフォルトで bre (基本正規表現)を使用します。アスタリスクは数量詞として機能するため、数量化するには文字または文字クラスが必要です。 '.*'。