web-dev-qa-db-ja.com

grepを使用して一重引用符でテキストを検索しますか?

私はubuntu 12.04の埋め込み端末でgeditテキストエディタを使用しています。 grepを使用してテキストを検索しようとしています。このコード行を検索したい

'type' => 'select'

私は試した:

grep -r '\'type\' => \'select\''

ただし、grepは結果を返しませんでした。

だから誰かが親切に上記のコードを検索する方法を教えてもらえますか?

14
newuser

検索文字列を二重引用符で囲みます。

grep "'type' => 'select'"
17
Chris

単一引用符で囲まれた単一引用符をエスケープすることはできません。 [bashマニュアル]で説明されているように:( http://www.gnu.org/software/bash/manual/bashref.html#Single-Quotes ):

文字を一重引用符( '')で囲むと、引用符内の各文字のリテラル値が保持されます。 バックスラッシュが前にある場合でも、シングルクォートはシングルクォートの間に現れないかもしれません。

したがって、異なるアプローチを使用する必要があります。

  1. 二重引用符を使用します。

    grep  "'type' => 'select'" file 
    
  2. 不必要に複雑なソリューションを好む場合:

    grep  "'"type"'"\ =\>\ "'"select"'" file 
    
  3. 単一引用符を指定する代わりに、任意の単一文字をいつでも検索できます。

    grep  '.type. => .select.' file 
    

しかし、"を使用するだけで、物事がより簡単になります。

7
terdon

cd .txtファイルを含むディレクトリに

cd /path 

それから:

grep "'type' => 'select'" name.txtを使用できます

または :

`grep "'type' => 'select'" /path/file.txt

出力:

enter image description here

1
nux