如何在TC Shell中使用带有参数的正则表达式

时间:2014-01-03 10:03:48

标签: regex shell

我正在尝试编写一个名为find_dict的简单shell脚本,它将在某个字典中找到给定的参数。 字典文件名为dictionary。这就是我尝试过的:

#!/bin/tcsh
foreach word ($argv)
    grep ^$word$ dictionary
end

这对我不起作用。然而,通过删除第二个“$”符号它确实起作用,但显然它不仅匹配给定的参数,而且还匹配从它开始的所有内容。 例如:

> find_dict ball
ball
balls
ballad
ballet
...

我也试过了^[$word]$ ^($word)$,但都没有效果。 我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

以下适用于我。在执行grep之前,shell会解释引号:

#!/bin/tcsh
foreach word ($argv)
    grep ^"${word}"$ dictionary
end