Как объединить два оператора grep и отобразить их результаты вместе?

Как объединить два оператора grep и отобразить их результаты вместе?

Предположим, я делаю

   grep "MyVariable = False" FormA.frm

   ... result1

   grep "MyVariable = True"  FormA.frm

   ... result2

Как написать команду grep, чтобы я мог сказать что-то вроде

   grep "MyVariable = False" OR "MyVariable = True" FormA.frm

решение1

На самом деле вам нужно "ИЛИ", а не "И". Если используется "И", то, по логике, вы не получите ни одной строки (если только строка не будет чем-то вроде "MyVariable = False...MyVariable = True").

Используйте «расширенный grep» и оператор OR ( |).

grep -E 'MyVariable = False|MyVariable = True' FormA.frm

решение2

Вам следует использовать

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

где \|последовательность означает альтернативу, а разделители \(и \)предназначены для группировки.

решение3

Вы можете просто сделать

grep -E "MyVariable = False|MyVariable = True" FormA.frm

решение4

Чтобы ответить иначе, чем уже было сказано...

Вы также можете указать несколько совпадений для grep, указав -eопцию несколько раз.

% grep -e "MyVariable = True" -e "MyVariable = False" FormA.frm
 ... result1
 ... result2

Связанный контент