Eu estou olhando para automatizar um processo em que uma parte do nome do arquivo é o que é usado para substituir um valor dentro do próprio arquivo.
Atualmente, uso um processo manual semelhante a este:
obtenha o orgname manualmente
$ grep -o orgname......... *2017-04* |uniq
...
uname=123456&**orgname=ABC5678**&userType=PERSISTENT&userLoginName=someusername&eventType=FAILED_LOGIN_ATTEMPT&timeOfOccurrence=2017-03-12%2016%3A49%3A36
Em seguida, substitua orgname por novo nome
$ sed -i 's/ABC1234/5678/g' '*'5678'*' ; sed -i 's/DEF2345/6789/g' '*'6789'*'; sed -i etc...
O resultado final ficaria assim:
uname=123456&orgname=**1234**&userType=PERSISTENT&userLoginName=someusername&eventType=FAILED_LOGIN_ATTEMPT&timeOfOccurrence=2017-03-12%2016%3A49%3A36
Os arquivos são nomeados assim:
rsa.collect.rsa-IB_L**1234**-2017-03-12.log.web1.decrypt
O que quer que seja depois de orgname = precisa mudar de ABC5678 para o que vier depois de Lxxxx, somente em arquivos com o mesmo xxxx em seu nome de arquivo.
Estou tendo dificuldade em entender como extrair esse número do nome do arquivo e usá-lo em sed
. Existem centenas de arquivos (cada um com sua própria data) e 6 pares de números diferentes para trabalhar. Eu estou esperando para escrever um script bash que faz isso tudo de uma vez.
Eu estava tentando usar grep -P
combinada com isso em algum tipo de variável e usando sed
, mas talvez haja uma maneira melhor / mais fácil?
Deixe-me saber se há alguma pergunta adicional.