Como combinar duas instruções grep e exibir seus resultados juntos?

8

Suponha que eu faça

   grep "MyVariable = False" FormA.frm

   ... result1

   grep "MyVariable = True"  FormA.frm

   ... result2

Como escrever o comando grep para que eu possa dizer algo como

   grep "MyVariable = False" OR "MyVariable = True" FormA.frm
    
por CodeBlue 28.03.2012 / 17:20

4 respostas

10

O que você realmente quer é "OR", não "AND". Se "AND" for usado, então, logicamente, você não obterá linhas (a menos que a linha seja algo como "MyVariable = False ... MyVariable = True".

Use "grep estendido" e o operador OR ( | ).

grep -E 'MyVariable = False|MyVariable = True' FormA.frm
    
por 28.03.2012 / 17:31
3

Você deve usar

grep "MyVariable = \(False\|True\)" FormA.frm

em que a sequência \| significa uma alternativa e os delimitadores \( e \) são para agrupamento.

    
por 28.03.2012 / 17:29
1

Você pode simplesmente fazer

grep -E "MyVariable = False|MyVariable = True" FormA.frm
    
por 28.03.2012 / 17:30
1

Para responder de uma maneira diferente do que já foi dito ...

Você também pode especificar várias correspondências para o grep, especificando a opção -e várias vezes

% grep -e "MyVariable = True" -e "MyVariable = False" FormA.frm
 ... result1
 ... result2
    
por 13.06.2018 / 16:28

Tags