Я пытался найти фактическое практическое применение? т.е. для, например, "egrep a? имя файла", но не смогло найти любого.. Это возвращает все результаты..
Так, выручите меня, где я мог знать фактическое использование egrep? команда..
Если я использую 'a?', это возвращает весь результат т.е. строки или строки. который имеет 0 a's, 1 a's, 2 a's и так далее.. т.е. я не могу найти использование того же..
Спасибо
Скажите, что Вы хотели соответствовать числовым выражениям присваивания как это в сценарии:
x=1234
где некоторые числа отрицательны и имеют знак "минус":
x=-5678
Вы могли использовать это:
grep -E "x=-?[0-9]+" *
Вопросительный знак делает минус дополнительный.
(Я не думаю плоскость grep поддержки ?
или +
, следовательно -E
).
?
не метасимвол в основном grep
, таким образом, если Вы держите для a?
, Вы на самом деле держите для a
сопровождаемый вопросительным знаком.
Если Вы использовали egrep
(иначе grep -E
), затем отвечает на указание на это ?
zero-or-one-of-previous-entity regex, метасимвол был бы корректен.
a?
отдельно бессмысленно для поиска, потому что это будет всегда соответствовать. Это только имеет смысл как часть большего regex.
– chaos
15.08.2009, 18:45
Это - односимвольный поиск, соответствуя единице или нули символа перед ним.
Примечание: необходимо ли выйти? при помощи \сначала: \?.
i-?
но Вы говорите о соответствии i+j
. И если Вы означали говорить i+?
затем это будет все еще соответствовать i++
. ?
не ограничивает то, что прибывает после соответствия, таким образом, i+?
будет счастливо соответствовать i++
.
– RichieHindle
15.08.2009, 19:00
В regex говорят, a? средства 0 или 1 'a's. Таким образом, при поиске строки, которая имеет 0 или 1 a's в нем, Вы получите все. Место, где это было бы полезно, соответствует положительным целым числам:
/^\+?\d+$/
который теряет значение как
^: beginning of line
\+: + sign
?: 0 or 1 of previous character
\d: digit
+: one or more of previous character
$: end of line
и соответствовал бы обоим +123
и 456
Взгляните на постоянного-клиента-expressions.info для большего количества информации об использовании regex's.
egrep a? filename
будет соответствовать каждой строке. Это не полезно самостоятельно. – RichieHindle 15.08.2009, 19:48