4

Я пытался найти реальное практическое применение? например, для "egrep a?" имя файла "но не смог найти ни одного .. Возвращает все результаты ..

Итак, пожалуйста, помогите мне, где я мог знать фактическое использование egrep? команда ..

Если я использую?', он возвращает весь результат, то есть строки или строки. который имеет 0 а, 1 а, 2 а и т. д. т.е. я не могу найти использование того же самого ..

Спасибо

4 ответа4

8

Допустим, вы хотите сопоставить числовые выражения присваивания в скрипте, как это

x=1234

где некоторые числа отрицательны и имеют знак минус:

x=-5678

Вы можете использовать это:

grep -E "x=-?[0-9]+" *

Знак вопроса делает минус необязательным.

(Я не думаю, что простой grep поддерживает ? или + , следовательно, -E).

5

? не является метасимволом в базовом grep , так что если вы ищите a? , Вы на самом деле для оглавлению следует знак вопроса.

Если вы использовали egrep (он же grep -E), то ответы, указывающие на это ? является метасимволом ноль или один из предыдущих сущностей.

4

Это поиск по одному символу, соответствующий одному или нулю символа перед ним.

Примечание: вам нужно сбежать? используя \ first: \?.

1

В регулярных выражениях говорите, а? означает 0 или 1 'a's. Так что если вы ищете строку, в которой есть 0 или 1, вы получите все. Место, где это было бы полезно, - это совпадение натуральных чисел:

/^\+?\d+$/

который играет как

^: beginning of line
\+: + sign
?: 0 or 1 of previous character
\d: digit
+: one or more of previous character
$: end of line

и будет соответствовать +123 и 456

Загляните на регулярные выражения для получения дополнительной информации об использовании регулярных выражений.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .