Intereting Posts
Как установить Grub на внешний жесткий диск? Звук как от наушников, так и от громкоговорителей возможно ли rsync на другой сервер с помощью crontab? Обновление застряло в «Настройка конфигурации клавиатуры (1.166ubuntu6) …» Почему моя система получает эти белые полосы вокруг окон? Используйте Network-Manager для подключения к точке доступа WiFi в командной строке Включает ли переключатель -an первый проход кодирования ffmpeg с 2-мя проходами? Должен ли я устанавливать дополнения Firefox через программный центр или веб-браузер? Построение множества наборов данных в libreoffice calc Как настроить заставку после plymouth Почему при отключении «Безопасной загрузки» применяется политика при установке сторонних модулей Как настроить apache2 virtualhosts в вашем домашнем каталоге на ubuntu 14.04? Причины использования и отсутствия использования версии Alpha, Beta или RC? make: dh: Команда не найдена Где различные размеры значков приложений, представленные на сайте разработчика приложений?

синтаксическая ошибка с регулярным выражением в unix

Я попытался найти регулярное выражение, которое соответствует любому числу между 1 и 999. Когда используется крючки, я получаю синтаксическую ошибку

(bash: syntax error near unexpected token `(') 

и когда я не использую крючки, ничего не происходит.

мое регулярное выражение:

 egrep ^([1-9][0-9]?|)$ Numbers 

Обновить:

но как я могу заставить его проверить файл, который я хочу проверить, потому что знаю, что я могу проверить числа, если я использую эхо, но я должен проверить файл

Это должно соответствовать любому числу от 1 до 999. Я добавил {0,2} что означает совпадение между 0 и 2 повторами группы символов [0-9].

  ^[1-9][0-9]{0,2}$ 

Если вы пытаетесь сопоставить круглые скобки и символ трубы, вам нужно будет избежать их:

  ^\([1-9][0-9]{0,2}\|\)$ 

Примените регулярное выражение в двойных кавычках или избежите скобок и труб с обратной косой чертой.

например egrep "^([1-9][0-9]?|)$" или egrep ^\([1-9][0-9]?\|\)$ .

Кстати, ваше регулярное выражение, похоже, сломано. Как насчет egrep "^[1-9][0-9]?[0-9]?$" ?

Попробуй это:

 echo $number | grep '^[1-9][0-9]\{0,2\}$'