regex – поиск только пар символов

У меня есть следующие данные, из которых я хочу извлечь только те строки, которые содержат только «bb». Не «b» или «bbb» или что-то еще просто «bb».

abb abbb aabbcc aabab abbbbc 

Теперь, когда я использую следующую комбинацию команд:

 cat file1 | grep "bb[^b] 

Я получаю вывод как все строки в моем файле образца:

 abb abbb aabbcc aabab abbbbc 

Ожидаемый я хочу – 🙁 Строки, содержащие только «bb»)

 abb aabbcc 

Какое регулярное выражение может быть достигнуто?

abbbabb недействителен. Я ищу строки, которые содержат только bb и никакой другой шаблон b . Строка будет содержать только два, последовательных b и никаких других символов b вообще.

  • Как скопировать файлы изображений, имена которых не заканчиваются размером их разрешения?
  • Как я могу сделать bash не соответствовать `.` и` ..` с `. *`
  • Скопировать / Переместить всю папку, но с определенными расширениями
  • Bash для соответствия каталогам, имена которых начинаются с точки (периода), будучи «явным», вместо использования «shopt -s dotglob»?
  • Использование подстановочных знаков для соответствия директории в bash
  • BASH: количество слов в каждой строке документа
  • Как игнорировать несколько файлов с помощью `ag` Silver Searcher
  • Как создать каталог во всех подкаталогах?
  • 2 Solutions collect form web for “regex – поиск только пар символов”

    Я думаю, самый прямой способ:

     grep '^[^b]*bb[^b]*$' file1 

    Btw, для команд, таких как grep которые принимают аргумент имени файла, более эффективно выполнять

     grep '^[^b]*bb[^b]*$' file1 

    или

     grep '^[^b]*bb[^b]*$' < file1 

    (последний работает, если аргумент файла не поддерживается)

    чем

     cat file1 | grep '^[^b]*bb[^b]*$' 

    и часто более гибкими.

     grep '\(^\|[^b]\)bb\([^b]\|$\)' 

    или

     grep -E '(^|[^b])bb([^b]|$)' 

    То есть: поиск вхождения bb , которому предшествует либо начало строки, либо символ, отличный от b , за которым следует либо символ, отличный от b либо конец строки.

    Interesting Posts

    Как скомпилировать программы на Linux-системах, когда у меня нет привилегий sudo для установки зависимостей dev

    Смешивание репозиториев для разных версий OpenSUSE

    Как постоянно устанавливать положение и порядок экрана в Fedora 25?

    Перейти к первой строке консольного вывода команды

    Как установить dig на CentOS 6?

    grep для файлов и открыть итоговые совпадения

    bash: невозможно установить группу терминальных процессов (-1): неприемлемо ioctl для устройства

    Только файлы VIM, только cd-каталоги

    Игнорировать строки, содержащие заглавную букву

    Как интерпретировать вывод safecopy

    Ошибка создания и компиляции GCC 5.2.0 с нуля на Vortex86DX

    Неудачная установка 32-разрядного питона на 64-битный Linux Mint

    Ошибка времени выполнения Awk: недостаточно аргументов

    Как я могу перезаписать файл и запустить команду, если файл действительно изменился?

    Проблема с запуском pgbouncer

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