Um comando awk que lê o arquivo e o renomeia:
awk -F '[:)]' '/ProcID/{printf "echo mv %s %s.txt\n", FILENAME, | "/bin/sh"; nextfile}' O*.TXT
Como a linha ProcID
é, na verdade:
JOB 04508907 (ProcID:0000019324) START AT 22.12.2016 / 09:10:45
Para extrair o I, P, precisamos dividir em :
e )
, o que nos dará 0000019324
como o segundo campo.
Remova echo
para realmente executar o movimento. Use isto somente se os nomes dos arquivos e ProcID
não contiverem espaços ou caracteres especiais.
Esse comando obtém o ProcID
dividindo em :
para obter o segundo campo e, em seguida, usa-o e a variável especial FILENAME
para construir o comando. A documentação do GNU awk sugere o método printf ... | "/bin/sh"
. Então nós pulamos para o próximo arquivo.