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.