Символ *
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*'потому что символ звездочки *не может соответствовать нулю вхождений шаблона.
Чтобы сделать символ звездочки полезным, необходимо создать шаблон, который включает в себя не только один символ, предшествующий ему. Например, приведенные выше результаты можно улучшить, добавив еще один, eчтобы шаблон ee*эффективно соответствовал каждой строке, содержащей хотя бы один e.
Last updated