Символ *
10.8.3 Символ звездочки *
Символ звездочки *
используется для сопоставления нуля или более вхождений предшествующего ему символа или шаблона. Например, e*
будет соответствовать ноль или более вхождений буквы e
:
sysadmin@localhost:~/Documents$ cat red.txt
red
reef
rot
reeed
rd
rod
roof
reed
root
reel
read
sysadmin@localhost:~/Documents$ grep 're*d' red.txt
red
reeed
rd
reed
Также можно сопоставить ноль или более вхождений списка символов, используя квадратные скобки. Шаблон [oe]*
, используемый в следующем примере, соответствует нулю или более вхождений символа o
или e
символа:
sysadmin@localhost:~/Documents$ grep 'r[oe]*d' red.txt
red
reeed
rd
rod
reed
При использовании только с одним другим персонажем *
не очень полезно. Любой из следующих шаблонов будет соответствовать каждой строке или строке в файле: '.*'
'e*'
'b*'
'z*'
потому что символ звездочки *
не может соответствовать нулю вхождений шаблона.
sysadmin@localhost:~/Documents$ grep 'z*' red.txt
red
reef
rot
reeed
rd
rod
roof
reed
root
reel
read
sysadmin@localhost:~/Documents$ grep 'e*' red.txt
red
reef
rot
reeed
rd
rod
roof
reed
root
reel
read
Чтобы сделать символ звездочки полезным, необходимо создать шаблон, который включает в себя не только один символ, предшествующий ему. Например, приведенные выше результаты можно улучшить, добавив еще один, e
чтобы шаблон ee*
эффективно соответствовал каждой строке, содержащей хотя бы один e
.
sysadmin@localhost:~/Documents$ grep 'ee*' red.txt
red
reef
reeed
reed
reel
read
Last updated