A saída de cada linha processada awk é terminada em um avanço de linha ( \n ) que é o padrão Unix / Linux. Windows / DOS espera um retorno de carro seguido por um avanço de linha para marcar o final da linha ( \r\n ). notepad exibirá todos os arquivos gerados pelo Linux como você está vendo atualmente.
Para resolver, canalize a saída de awk por meio do comando unix2dos , que converte n s em \r\n s para você:
unzip -l my.zip | awk '{print $4}' |unix2dos > my.txt
Como alternativa, tente informar awk para a saída \r\n no final de cada linha usando a variável ORS :
unzip -l my.zip | awk -v ORS='\r\n' '{print $4}' > my.txt
Para listar sem cabeçalho e rodapé:
unzip -l my.zip | awk -v ORS='\r\n' '{print $4}' | tail -n +4 | head -n -2 > my.txt
Ou
Como alternativa, use zipinfo -1 <zip file> (número 1, não letra l) para listar arquivos sem cabeçalho e rodapé. Talvez você ainda precise canalizá-lo por unix2dos . Útil somente se zipinfo estiver disponível no CygWin.