回答:
単一引用符で囲まれた単一引用符をエスケープすることはできません。[bash manual]で説明されているように:(http://www.gnu.org/software/bash/manual/bashref.html#Single-Quotes:):
文字を一重引用符( '' ')で囲むと、引用符内の各文字のリテラル値が保持されます。バックスラッシュが先行する場合でも、単一引用符の間に単一引用符が発生しない場合があります。
したがって、異なるアプローチを使用する必要があります。
二重引用符を使用します。
grep "'type' => 'select'" file
必要以上に複雑なソリューションを好む場合:
grep "'"type"'"\ =\>\ "'"select"'" file
単一引用符を指定する代わりに、任意の単一文字をいつでも検索できます。
grep '.type. => .select.' file
しかし、を使用するだけ"
で、物事がより簡単になります。
$var
はgrep '$var' file.php
、一重引用符で囲むことができます。詳細については、新しい質問を投稿して、ここにコメントを残してください。喜んでお手伝いします。
$output = $info['function']($variables);
です。二重バックスラッシュで適切にエスケープする必要がありました。:これは、すべての後、私はgrepコマンドが言ったと行っているtargetstring="\$output = \$info\\['function'\\](\$variables);" targetlinenumber=`grep -n "$targetfile" -e "$targetstring" | cut -d :f 1`
CDあなたの.txtファイルを含むディレクトリへ
cd /path
それから:
使用できます grep "'type' => 'select'" name.txt
または:
`grep "'type' => 'select'" /path/file.txt
出力:
grep
その他の(少し無関係な)機能には関係しません。
-r
(OPが書き込むように)オプションを使用して、ファイル名は必要ありません。