Ответ 1
Попробуйте следующее:
grep 'expr1.*expr2\|expr2.*expr1'
Это немного сложнее, чем нужно, если вы знаете, что "expr2" всегда будет после "expr1". В этом случае вы можете упростить его:
grep 'expr1.*expr2'
Это базовое, но я не могу это сделать. Могу ли я использовать для invocation grep делать
grep expr1 | grep expr2
чтобы он печатал строки, включая выражения expr1 и expr2?
Попробуйте следующее:
grep 'expr1.*expr2\|expr2.*expr1'
Это немного сложнее, чем нужно, если вы знаете, что "expr2" всегда будет после "expr1". В этом случае вы можете упростить его:
grep 'expr1.*expr2'
Вы можете предоставить несколько выражений для поиска с несколькими флагами -e, см. этот пост.
то есть.
grep -e expr1 -e expr2
Что вы должны работать.
Ниже приведен альтернативный способ достижения такого же эффекта:
grep -E 'expr1.*expr2|expr2.*expr1'
На самом деле ваше собственное предложение почти правильно, если вы хотите получить строки, содержащие оба выражения. Использование:
grep expr1 somefile | grep expr2