Você está usando a variável FILENAME
com um valor vazio (você nunca atribui FILENAME
a um valor na linha de comando), isso deve gerar um erro antes mesmo do script awk
começa a correr. awk
já tem uma variável chamada FILENAME
que você pode usar. É o nome do arquivo de entrada atual.
Usando -vNoOfRecordsPerFile
, você diz que deseja atribuir um valor a uma variável awk
na linha de comando, mas nunca atribui um valor. Isso deve produzir um erro diferente daquele que você diz que está recebendo. Se você quisesse usar o valor da variável shell com o mesmo nome, use -v NoOfRecordsPerFile="$NoOfRecordsPerFile"
.
Assim, o comando final awk
torna-se:
awk -v NoOfRecordsPerFile="$NoOfRecordsPerFile" '
((NR-1) % NoOfRecordsPerFile) == 0 { x = FILENAME "-" ++i ".txt" }
{ print > x }' "$FILENAME"