Intereting Posts
Как определить, подключены ли два устройства в сети? Элементы списка с пробелами в zsh Разгрузка в LUKS на LVM от ESP Как установить переменную как идентификатор пользователя Неизвестное слово появляется автоматически после смены пароля для пользователя Есть ли какая-либо утилита или процедура, доступные для dm-crypt для существующих существующих данных в реальном времени, чтобы сделать полное шифрование диска Запустите макрос vim из сценария bash Отсутствуют символы стека с первичным отчетом perf_event, несмотря на сборник -fno-omit-frame-pointer Gzip большое количество символических файлов Какова соответствующая команда freebsd этих команд rpm? / etc / fstab: значение «nofail», если «noauto» уже указано chcon: не может применяться частичный контекст к немаркированному файлу '/ usr / sbin / xrdp' Мне нужно найти все домашние каталоги пользователей, перечисленные с помощью grep из / etc / passwd итерации по каталогу, проверьте, являются ли элементы файлами или каталогами Как обновить программное обеспечение, которое было создано из источника?

Как grep строки, основанные на '.' (точка)?

Предположим, что у меня есть file со следующим содержимым:

 123 251 7.8 951 

Теперь я хочу, чтобы grep имели линии . Я пробовал:

 $ cat file | grep . 123 251 7.8 951 

 $ cat file | grep '.' 123 251 7.8 951 

Но он работает не так, как ожидалось. Итак, как мне использовать grep string на основе . ?

Дополнительная информация:

 $ grep --version | line grep (GNU grep) 2.16 

Этот результат вы получаете потому, что . соответствует любому одиночному символу

  • Из manpage > РЕГУЛЯРНЫЕ ЭКСПРЕССИИ:

    Основными строительными блоками являются регулярные выражения, которые соответствуют одному символу. Большинство символов, включая все буквы и цифры, являются регулярными выражениями, которые соответствуют самим себе. Любой метасимвол со специальным значением может быть процитирован предшествующим ему обратным слэшем.

    Период . соответствует любому одиночному символу.

    Итак,. требуется, чтобы сбежать с \

     $ cat file | grep '\.' 7.8 

    Заметим, что здесь \. следует указывать с помощью ' .

  • Другой способ – использовать -F, --fixed-strings с grep или использовать fgrep .

      -F, --fixed-strings Interpret PATTERN as a list of fixed strings, separated by newlines, any of which is to be matched. 

    Пример:

     $ cat file | grep -F . 7.8 

     $ cat file | fgrep . 7.8 
  • Еще одна проблема заключается в использовании выражения скобки с включением строки, которая должна быть сопоставлена ​​внутри [ и ] :

     $ cat file | grep '[.]' 7.8