В чем смысл (^ |) ABC (| $) как расширенного REGEX?

Я пришел сюда через команду grep -E '(^ ​​|) ABC (| $)' file1. Я смущен, как интерпретировать в ней регулярное выражение, потому что я знаю символы ^ и $ как начальные и конечные обозначения, но здесь они не в самом начале или конце из-за скобки, иногда используется для отрицания набора символов, но я видел это использование только в [^ ….] как выражение.

Может ли кто-нибудь объяснить шаг за шагом значение этого регулярного выражения?

  • Поиск grep + следующая строка
  • использование xargs для grep нескольких шаблонов
  • grep seach pattern из файла, содержащего список шаблонов, запись результата каждого шаблона в indivdual файлы
  • Уникальная идентификация Java-процессов с тем же именем
  • поиск строк в шаблонах сопоставления файлов, определенных в другом файле
  • Как открыть grep (1p) manpage?
  • Почему две почти idetic команды grep возвращают разные выходные данные: w / o и с именем файла
  • sed или grep, чтобы получить только значения без цифр
  • One Solution collect form web for “В чем смысл (^ |) ABC (| $) как расширенного REGEX?”

    Это означает, что grep должен искать строку ABC только в начале строки ИЛИ после пробела, причем эта строка должна заканчиваться другим пробелом ИЛИ концом строки.

    Другими словами, кто-то хотел найти строки, которые образуют целые слова . Однако это регулярное выражение имеет много проблем, а может быть много других символов до и после слова (по крайней мере, на естественном языке), т. Е. ( , ) . , ; , : ,,, ... и т. д.

    Таким образом, лучше использовать -w вариант grep , альтернативно играть с границами: \b или \< / \> .

    Linux и Unix - лучшая ОС в мире.