Esta função bash deve funcionar:
foo() {
searchstring="$1"
shift 1
echo "========${searchstring}===========" ;
grep --no-filename "${searchstring}" "$@" | \
cut -d" " -f25 | tee "${searchstring,,}".txt
}
Invoque da seguinte forma:
foo Pitch filename-{1..201..5}
Como funciona. Como grep permite vários nomes de arquivos a partir da linha de comando, e bash permite prefixar uma string com código como {1..10} , não é necessário passar nomes de arquivos de uma vez por meio de um loop for . O cat e o > podem ser substituídos por um único tee .
O primeiro argumento de foo é a string de pesquisa, (por exemplo, " Match "), que o shell define como " $ 1 " - que é movido para uma variável temporária $searchstring , então " Correspondência " é removida com shift 1 , para que " $ @ " contenha apenas os nomes dos arquivos.