Какво представляват регулярните изрази на Linux?
Регулярните изрази на Linux са специални символи, които помагат за търсене на данни и съвпадение на сложни модели. Регулярните изрази се съкращават като 'regexp' или 'regex'. Те се използват в много Linux програми като grep, bash, rename, sed и т.н.
Видове регулярни изрази
За по-лесно разбиране нека научим различните видове Regex един по един.
- Основни регулярни изрази
- Интервал Регулярни изрази
- Разширени регулярни изрази
- Обобщение
Щракнете тук, ако видеоклипът не е достъпен
Основни регулярни изрази
Някои от често използваните команди с регулярни изрази са tr, sed, vi и grep. По-долу са изброени някои от основните регулярни изрази.
Символ | Описания |
---|---|
. | замества всеки символ |
съвпада с началото на низа | |
$ | съвпада с края на низа |
* | съвпада с нула или повече пъти предходния знак |
\ | Представляват специални знаци |
() | Групира регулярни изрази |
? | Съвпада точно с един знак |
Да видим пример.
Изпълнете пример за котка, за да видите съдържанието на съществуващ файл
Потърсете съдържание, съдържащо буква „а“.
' ^ ' съответства на началото на низ. Нека да търсим съдържание, което СТАРТИРА с
Филтрират се само редове, които започват със символ. Редовете, които не съдържат символа „а“ в началото, се игнорират.
Нека разгледаме друг пример -
Изберете само онези редове, които завършват с t, като използвате $
Интервал Регулярни изрази
Тези изрази ни казват за броя появявания на даден символ в низ. Те са
Израз | Описание |
---|---|
{н} |
Съвпада точно с предходния знак, появяващ се „n“ пъти |
{n, m} | Съответства на предходния знак, появяващ се „n“ пъти, но не повече от m |
{н, } | Съответства на предходния знак само когато се появява „n“ пъти или повече |
Пример:
Филтрирайте всички редове, които съдържат символ „p“
Искаме да проверим дали символът 'p' се появява точно 2 пъти в низ един след друг. За това синтаксисът ще бъде:
cat sample | grep -E p\{2}
Забележка: Трябва да добавите -E с тези регулярни изрази.
Разширени регулярни изрази
Тези регулярни изрази съдържат комбинации от повече от един израз. Някои от тях са:
Израз | Описание |
---|---|
\ + |
Съответства на една или повече поява на предишния знак |
\? |
Съвпада с нула или една поява на предишния знак |
Пример:
Търсене на всички символи „t“
Да предположим, че искаме да филтрираме редове, където знакът „a“ предшества символа „t“
Можем да използваме команда като
cat sample|grep "a\+t"
Разширяване на скобата
Синтаксисът за разширяване на скоби е или последователност, или списък с елементи, разделени със запетая във фигурни скоби "{}". Началните и крайните елементи в последователност са разделени от два периода "...".
Няколко примера:
В горните примери командата echo създава низове, използвайки разгъването на скобата.
Резюме:
- Регулярните изрази са набор от символи, използвани за проверка на шаблони в низове
- Те се наричат още „регулярни изрази“ и „регулярни изрази“
- Важно е да научите регулярни изрази за писане на скриптове
- Някои основни регулярни изрази са:
Символ | Описания |
---|---|
. | замества всеки символ |
съвпада с началото на низа | |
$ | съвпада с края на низа |
- Някои разширени регулярни изрази са:
Израз | Описание |
---|---|
\ + | Съответства на една или повече поява на предишния знак |
\? | Съвпада с нула или една поява на предишния знак |
- Някои интервални регулярни изрази са:
Израз | Описание |
---|---|
{н} | Съвпада точно с предходния знак, появяващ се „n“ пъти |
{n, m} | Съответства на предходния знак, появяващ се „n“ пъти, но не повече от m |
{н, } | Съответства на предходния знак само когато се появява „n“ пъти или повече |
- Разширяването на скобата се използва за генериране на низове. Помага при създаването на множество низове от един.