É mais fácil com zsh
:
$ array=(saf sri trip tata strokes)
$ pattern='*tr*'
$ printf '%s\n' ${(M)array:#$~pattern}
trip
strokes
-
${array:#pattern}
: expande para os elementos da matriz que não correspondem ao padrão. -
(M)
(para correspondência): reverte o significado do operador:#
para expandir para os elementos que correspondem em seu lugar -
$~pattern
, faz com que o conteúdo de$pattern
seja tomado como um padrão.