Você fez uma grande bagunça, começando com a formatação da sua pergunta (veja o que eu fiz acima, o que deve deixar as coisas abaixo mais claras).
Primeiro problema:
Se você tiver um ponto-e-vírgula ( ;
) ou um "continuar com êxito ( &&
), estará executando dois conjuntos separados de comandos.
Completamente separado. É como você correu um, aperte enter e depois correu o outro.
Isso significa que seu segundo awk
está procurando stdin por entrada, e não encontrando nada está lhe dando nenhuma saída (é por isso que file2
está vazio)
Segundo problema:
Instâncias separadas de awk
não podem compartilhar variáveis. Ou você quer que o segundo awk
mastigue a saída da consulta do MySQL, ou você quer que ele mastigue a saída do primeiro awk
.
Desde que você tem 5 variáveis em seu segundo awk
eu estou assumindo o último.
Solução
Execute a primeira metade da lista de comandos (tudo até o ponto e vírgula).
Agora, execute o segundo awk e especifique um arquivo de entrada ( awk '{print $1":"$5":13753:0:99999:7:::"}' /tmp/file1 >> /tmp/file2
).