【发布时间】:2017-07-25 10:18:46
【问题描述】:
假设我的 Helloworld.txt 包含
function( '100');
现在我想在( 之后搜索'100' 的任何出现,它们之间可能有空格。现在,使用这个 UNIX 命令:
案例一:
grep "[(][ ]*'100'" Helloworld.txt
我在 Helloworld.txt 中找到正确的匹配项。
但是当我写一个简单的shellscript时:
案例二:
Key="100"
Key="\"[(][ ]*'$Key'\""
echo $Key
grep $Key Helloworld.txt
正确打印:"[(][ ]*'100'"
但是,它不会返回在 Helloworld.txt 中找到的匹配项
【问题讨论】:
-
为什么要添加
\"?使用Key="[(][ ]*'$Key'" -
@WiktorStribiżew:我用双引号括起来,因为当我独立 grepping 时,如 Case-I 所示,我周围有双引号。我刚刚测试过,删除
\"也没有帮助。未找到匹配项。
标签: regex bash shell unix grep