localiza IDs de bancos de dados com erro durante a atualização

0

Eu tenho um arquivo de log de erros capturados no meu banco de dados, o arquivo contém uma lista dos registros que tinham erros e não foram atualizados. Os nomes dos registros são 10 dígitos e começam com strA:

Error: could not save changes to record strA5903427123
Error: could not save changes to record strB4403298440
Error: could not save changes to record strC5903427342
Error: could not save changes to record strD4403298988
Error: could not save changes to record strE5903427298
Error: could not save changes to record strF4403298232
Error: could not save changes to record strG5903427455
Error: could not save changes to record strH4403298223

Eu quero extrair a lista de dez dígitos e A e remover "Erro: não foi possível salvar as alterações para gravar str", como posso fazê-lo no bash, esta é uma lista muito longa e eu tenho muitos arquivos como este todos para o banco de dados.

    
por Gabi 09.10.2018 / 21:42

3 respostas

1

É isso que você quer?

sed -e 's/^.*str//' test.in
    
por 09.10.2018 / 21:44
1

usando grep para listar o ID de 10 dígitos que começa com A

grep -Eo "A[0-9]{10}" file

saída

A5903427123

Para listar o ID de 10 dígitos que começa com qualquer alfa maiúscula.

grep -Eo "[A-Z][0-9]{10}"  file

A5903427123
C5903427342
D4403298988
E5903427298
F4403298232
G5903427455
H4403298223
    
por 09.10.2018 / 21:47
1

Você pode fazer isso em awk da seguinte forma:

awk '{print $8}' file | tr -d "str"

A5903427123
B4403298440
C5903427342
D4403298988
E5903427298
F4403298232
G5903427455
H4403298223
    
por 09.10.2018 / 21:45