使用 grep 搜索带有单引号的文本?

使用 grep 搜索带有单引号的文本?

我在 ubuntu 12.04 中使用带有嵌入式终端的 gedit 文本编辑器。我尝试使用 搜索一些文本grep。我想搜索这行代码

'type' => 'select'

我试过:

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

grep没有返回任何结果。

那么有人能告诉我如何搜索上面的代码吗?

答案1

用双引号括住搜索字符串:

grep "'type' => 'select'"

答案2

您无法转义出现在单引号内的单引号。如bash 手册

将字符括在单引号(''')中会保留引号内每个字符的文字值。单引号之间不能出现单引号,即使前面有反斜杠

因此,您必须使用不同的方法:

  1. 使用双引号:

     grep  "'type' => 'select'" file 
    
  2. 如果您更喜欢不必要的复杂解决方案:

     grep  "'"type"'"\ =\>\ "'"select"'" file 
    
  3. 您始终可以搜索任意单个字符,而不必指定单引号:

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

但只需使用",它就会使事情变得更加简单。

答案3

光盘到包含你的 .txt 文件的目录

cd /path 

然后 :

您可以使用grep "'type' => 'select'" name.txt

或者 :

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

输出 :

在此处输入图片描述

相关内容