# Символ \*

Символ звездочки `*`используется для сопоставления нуля или более вхождений предшествующего ему символа или шаблона. Например, `e*`будет соответствовать ноль или более вхождений буквы `e`:

<pre><code><strong>sysadmin@localhost:~/Documents$ cat red.txt
</strong>red
reef
rot
reeed
rd
rod
roof
reed
root
reel
read
<strong>sysadmin@localhost:~/Documents$ grep 're*d' red.txt
</strong>red
reeed
rd
reed
</code></pre>

Также можно сопоставить ноль или более вхождений списка символов, используя квадратные скобки. Шаблон `[oe]*`, используемый в следующем примере, соответствует нулю или более вхождений символа `o`или `e`символа:

<pre><code><strong>sysadmin@localhost:~/Documents$ grep 'r[oe]*d' red.txt
</strong>red
reeed
rd
rod
reed
</code></pre>

При использовании только с одним другим персонажем `*`не очень полезно. Любой из следующих шаблонов будет соответствовать каждой строке или строке в файле: `'.*'` `'e*'` `'b*'` `'z*'`потому что символ звездочки `*`не может соответствовать нулю вхождений шаблона.

<pre><code><strong>sysadmin@localhost:~/Documents$ grep 'z*' red.txt
</strong>red
reef
rot
reeed
rd
rod
roof
reed
root
reel
read
</code></pre>

<pre><code><strong>sysadmin@localhost:~/Documents$ grep 'e*' red.txt
</strong>red
reef
rot
reeed
rd
rod
roof
reed
root
reel
read
</code></pre>

Чтобы сделать символ звездочки полезным, необходимо создать шаблон, который включает в себя не только один символ, предшествующий ему. Например, приведенные выше результаты можно улучшить, добавив еще один, `e`чтобы шаблон `ee*`эффективно соответствовал каждой строке, содержащей хотя бы один `e`.

<pre><code><strong>sysadmin@localhost:~/Documents$ grep 'ee*' red.txt
</strong>red
reef
reeed
reed
reel
read
</code></pre>
