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 вообще.

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 либо конец строки.

  • Исправление соответствия шаблонов для сценария оболочки
  • Как использовать mogrify convert только в файлах с определенной датой создания?
  • Как вывести количество всех файлов с «tty» в имени файла в каталоге Linux, где хранятся файлы на системных устройствах
  • Совпадение шаблонов по блоку
  • Проверьте хвост нескольких файлов
  • Как удалить все файлы в текущем каталоге, начиная с точки?
  • Переименуйте последние 8 символов в имени файла
  • Почему «tar -exclude» не использует несколько опций?
  • «Globbing» (*) происходит от «глобальной команды» ... А?
  • Почему tar --exclude = ". *" Создает пустой архив?
  • ! (*. sh) работает в командной строке, но не в скрипте
  • cp скрытые файлы с шаблонами glob
  • Interesting Posts

    Openssl создает недопустимый код безопасности websocket

    Как решить, почему Apache пытается «execmem»?

    Заменить подстроку имен файлов в каталоге

    Как заменить недопустимые символы на подчеркивание с помощью Perl?

    apt-get не находит phpldapadmin в Debian 9 (Stretch)

    Компилировать более новое программное обеспечение для устаревших версий одного и того же дистрибутива

    Связанная с SSL «неопределенная ссылка» на libssh2 и libcurl libs при компиляции C на OpenSUSE

    Сообщения широковещания не отображаются на gnome-terminal, но отображаются на xterm

    debian широкополосный беспроводной выход

    Зачем использовать cpio для initramfs?

    Почему `sudo su -l -c" java "` работает, даже если `sudo su -l -c 'echo $ PATH" `отображает местоположение двоичного файла java?

    Как безопасно передавать переменные в сценарии с поддержкой root?

    Распечатайте n строк до match1 И строки после match1 до match2

    Как я могу сделать общедоступную переменную в Linux, которую будут видеть все пользователи?

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

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