Aqui está uma pequena página no shellhacks.com que mostra exemplos " Usando BASH" Grep OR / Grep E / Grep NOT "Operadores ", e tem sed
& awk
equivalentes. Vou colá-lo aqui, você poderia usá-los para procurar $subject
e / ou / não $example
, em uma determinada ordem ou em qualquer.
Usando o BASH "Grep OR / Grep e / Grep NOT "Operadores
No artigo a seguir, você encontrará vários exemplos que mostram como usar operadores OR / AND / NOT com comandos do Linux GREP / SED / AWK.
É uma tarefa bastante comum usar essas ferramentas de linha de comando do Linux como grep, sed e awk para analisar arquivos com expressões regulares .
Mostrarei como encontrar todas as linhas , que contêm qualquer um dos vários padrões , como imprimir todas as linhas em um arquivo, corresponder várias padrões e como encontrar e imprimir todas as linhas, que não correspondem a um padrão .
Operador Grep 'OR'
Encontre todas as linhas em um arquivo que correspondam a qualquer um dos seguintes padrões.
Usando o comando GREP:
grep "pattern1\|pattern2" file.txt
grep -E "pattern1|pattern2" file.txt
grep -e pattern1 -e pattern2 file.txt
egrep "pattern1|pattern2" file.txt
Usando o comando AWK:
awk '/pattern1|pattern2/' file.txt
Usando o comando SED:
sed -e '/pattern1/b' -e '/pattern2/b' -e d file.txt
Grep 'AND' Operator
Encontre e imprima todas as linhas em um arquivo que correspondam a vários padrões.
Usando o comando GREP:
grep -E 'pattern1.*pattern2' file.txt # in that order
grep -E 'pattern1.*pattern2|pattern2.*pattern1' file.txt # in any order
grep 'pattern1' file.txt | grep 'pattern2' # in any order
Usando o comando AWK:
awk '/pattern1.*pattern2/' file.txt # in that order
awk '/pattern1/ && /pattern2/' file.txt # in any order
Usando o comando SED:
sed '/pattern1.*pattern2/!d' file.txt # in that order
sed '/pattern1/!d; /pattern2/!d' file.txt # in any order
Grep 'NÃO' Operador
Encontre e imprima todas as linhas que não correspondem a um padrão.
Usando o comando GREP:
grep -v 'pattern1' file.txt
Usando o comando AWK:
awk '!/pattern1/' file.txt
Usando o comando SED:
sed -n '/pattern1/!p' file.txt
Aqui está um link para o manual do Grep do GNU . Ele tem muitas informações boas, inclusive sobre Expressões regulares e alguns exemplos de uso .
Esta página é uma "cola" no RegEx .