正規表現としてGrepしない質問する

正規表現としてGrepしない質問する

PHP 変数を検索する必要があります$someVar。しかし、Grep は正規表現を実行しようとしていると認識し、エラーを出力します。

$ grep -ir "Something Here" * | grep $someVar
Usage: grep [OPTION]... PATTERN [FILE]...
Try `grep --help' for more information.
$ grep -ir "Something Here" * | grep "$someVar"
<<Here it returns all rows with "someVar", not only those with "$someVar">>

grepに伝えるオプションが見当たりませんない文字列を正規表現として解釈しますが、 を$単なる別の文字列文字として含めます。

ベストアンサー1

パターンを正規表現ではなく固定文字列のリストとして扱うには、fgrep(非推奨)grep -Fまたは を使用します。grep --fixed-strings

参考までに、ドキュメントには次のように記載されています (抜粋):

-F --fixed-stringsパターンを、正規表現ではなく、改行で区切られた固定文字列のリストとして解釈し、そのいずれかの文字列が一致します。(-F は POSIX で指定されています。)

fgrepと同じですgrep -F。fgrep としての直接呼び出しは非推奨ですが、それらに依存する従来のアプリケーションを変更せずに実行できるようにするために提供されています。

完全なリファレンスについては、以下を確認してください。grep は、以下のコマンドで実行できます。

おすすめ記事