文字列を再帰的に検索しようとしていますが、次grep
の結果が表示されます。
$ grep -r "stuff" *
grep: unrecognized option '---corporate-discount.csv'
Usage: grep [OPTION]... PATTERN [FILE]...
Try 'grep --help' for more information.
-
Bashがパラメータで始まるファイルを渡すのを防ぐ方法は何ですか?
ベストアンサー1
まず、ダッシュで始まるパラメータの解釈は、実行中のプログラムgrep
や他のプログラムによって異なります。シェルにはこれを制御する直接的な方法はありません。
ほとんどのプログラムと同様に、これらのファイルを(完全に無視せずに)処理しようとしていると仮定すると、これはオプションの終わりを示すとgrep
認識されます。--
grep -r -e "stuff" -- *
やりたいことをします。そこの場合も-e
astuff
で始まります。-
または、次のものを使用できます。
grep -r -e "stuff" ./*
-
後者は、呼び出される現在のディレクトリにファイルがある場合にも問題を回避します。--
区切り文字の後にもstdinとgrep
解釈されますが、-
現在のディレクトリから./-
呼び出されるファイルです。-