Grep regex não contendo string
Eu estou passando uma lista de padrões de regex paragrep
para verificar um arquivo syslog. Eles geralmente estão combinando um endereço IP e uma entrada de log;
<code>grep "1\.2\.3\.4.*Has exploded" syslog.log </code>
É apenas uma lista de padrões como o"1\.2\.3\.4.*Has exploded"
parte que eu estou passando, em um loop, então eu não posso passar "-v" por exemplo.
Estou confuso tentando fazer o inverso do acima, um NOT combinar linhas com um certo endereço IP e erro assim "! 1.2.3.4. * Explodiu" irá coincidir com as linhas syslog para qualquer coisa diferente de 1.2.3.4 me dizendo que explodiu . Eudevo ser capaz de incluir um IP para NÃO corresponder.
Eu vi vários posts similares no StackOverflor, mas eles usam padrões de regex com os quais eu não consigo trabalhargrep
. Alguém pode fornecer um exemplo de trabalho paragrep
por favor?
ATUALIZAR: Isso está acontecendo em um script como esse;
<code>patterns[1]="1\.2\.3\.4.*Has exploded" patterns[2]="5\.6\.7\.8.*Has died" patterns[3]="\!9\.10\.11\.12.*Has exploded" for i in {1..3} do grep "${patterns[$i]}" logfile.log done </code>