Как указано здесь , вы хотите получить положительное выражение, например:
grep -P '(?<=name=)[ A-Za-z0-9]*' filename
-P заставляет grep использовать диалект Perl, в противном случае вам, вероятно, придется избегать скобок. Вы также можете, как отмечено в другом месте, добавить параметр -o
, чтобы распечатать только то, что соответствует. Часть в скобках указывает, что вам нужны буквенно-цифровые символы и пробелы.
Преимущество использования положительного выражения lookbehind состоит в том, что текст "name =" не является частью совпадения. Если grep выделяет совпадающий текст, он выделяет только буквенно-цифровую (и пробелы) часть. Параметр -o также не отображает часть «name =». И, если вы перенесете это в другую программу, например sed, которая может захватывать текст и что-то с ним делать, вы не будете захватывать часть «name =», хотя вы также можете сделать это, используя ввод скобок.