tcsh シェル スクリプトでこの perl ステートメントをコーディングする正しい方法は何ですか?
foreach (@array) { if (/^(pam|pom)/) { dosomething(); } }
tcsh シェル スクリプトでこの perl ステートメントをコーディングする正しい方法は何ですか?
foreach (@array) { if (/^(pam|pom)/) { dosomething(); } }
1 つの方法を次に示します。
#!/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