Как 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