tcsh脚本:if语句中的正则表达式

时间:2010-12-23 19:25:09

标签: tcsh

在tcsh shell脚本中编写这个perl语句的正确方法是什么

foreach(@array){if(/ ^(pam | pom)/){dosomething(); } }

1 个答案:

答案 0 :(得分:2)

这是一种方式:

#!/bin/tcsh -f

set array = ( foo pam bar pom baz xpam pamx )
alias dosomething echo

foreach elem ($array:q)
    if ($elem:q =~ {pam,pom}*) then
        dosomething $elem:q
    endif
end

请注意,=~运算符右侧的表达式是文件匹配模式,而不是正则表达式,因此此解决方案不会推广到所有情况。如果需要正则表达式匹配,可以使用expr命令:

expr STRING : REGEXP

或等同于:

expr match STRING REGEXP