Parece que awk
está ficando sem identificadores de arquivo. A solução óbvia, se você não puder atualizar para uma versão mais recente do awk
, é fechar os arquivos depois de usá-los.
Alguma das combinações path;filename
provavelmente aparecerá mais de uma vez?
Se não, tente:
awk -F ";" '{f="/"$1"/"$2; print $3 > f ; close(f)}' file
Caso contrário, use >> f
se a anexação a um arquivo existente estiver correta:
awk -F ";" '{f="/"$1"/"$2; print $3 >> f ; close(f)}' file
Se o arquivo precisar ser truncado na primeira vez em que for gravado, mas acrescentado a partir de então, será um pouco mais complicado:
awk -F ";" '{ f="/"$1"/"$2;
if ( !fnames[f]++ ) { print > f };
print $3 >> f;
close(f)
}' file
A matriz associativa fnames
é usada para determinar se o script viu esse nome de arquivo ainda ou não. se não, trunca o arquivo.