Alterar nome do arquivo pelo conteúdo da segunda linha

0

Eu tenho um arquivo Config.cfg e quero renomeá-lo colocando o valor da segunda linha no nome do arquivo.

Exemplo:

$ more Config.cfg 
!
!  Configuration last changed by user '%LICM%' at Tue Jul  4 15:17:04 2017
!
!
!
global synchronization option 2

Resultado esperado:

Config Jul  4 15:17:04 2017.cfg
    
por Nydenn 01.08.2017 / 11:35

2 respostas

0

Um caminho:

  • com sed, extraia a segunda linha
  • com o awk, extraia os campos finais e imprima o texto estático circundante
  • se tiver êxito, renomeie o arquivo com esse valor gerado

Código:

val=$(sed -n 2p Config.cfg | 
      awk '{print "Config " $(NF-3) " " $(NF-2) " " $(NF-1) " " $NF ".cfg"}')
[[ -n "$val" ]] && mv Config.cfg "$val"
    
por 01.08.2017 / 13:09
0

Somente com sed , você extrai seu nome de arquivo:

mv file "$(sed -n '/Configuration/s/.*at [^ ]*/Config/p' file)"
    
por 01.08.2017 / 13:49

Tags