Как grep $ войти в скрипт

Я пытаюсь найти строку, присутствующую в файле:devnode "^sda[1-9]?$"

Команда, которую я использую:grep 'devnode \"\^sda\[1-9\]\?\$\"' $file

Но это не похоже на работу. Я удостоверился, что использовал $ like "grep '\$'", как сообщалось в некоторых решениях, но он не работает.

Может ли кто-нибудь помочь мне в этом, это расстраивает.

Спасибо

2 ответа

grep 'devnode "^sda\[1-9]?\$"' $file

В POSIX BASIC REGEXP - https://www.mirbsd.org/man7/re_format - некоторые символы становятся специальными только с обратной косой чертой, а не без нее.

grep 'devnode "^sda\[1-9\]?$"' file

Grep понимает две разные версии синтаксиса регулярных выражений: "базовый" и "расширенный".

grep 'foo' file / use Basic Regular Expressions

grep -E 'foo' file / use Расширенные регулярные выражения.

Если используются базовые регулярные выражения,?, +, {, |, (И) не имеют специального значения. Если использовать расширенные регулярные выражения, как это.

grep -E 'devnode "\^sda\[1-9\]\?\$"' file
Другие вопросы по тегам