Використання регулярних виразів

Fish Shell:
Використання регулярних виразів

Як:

Хоча оболонка Fish сама по собі не має вбудованої команди для regex, вона ефективно використовує зовнішні команди, як-от grep, sed, і awk, що підтримують regex, дозволяючи вам включати операції regex у свої скрипти.

Основне зіставлення зразків за допомогою grep

Шукайте рядки у файлі, що відповідають шаблону:

grep '^[0-9]+' myfile.txt

Ця команда знаходить рядки, які починаються з однієї чи більше цифр у myfile.txt.

Видобування і заміна за допомогою sed

Витягніть телефонні номери з файлу:

sed -n '/\([0-9]\{3\}\)-\([0-9]\{3\}\)-\([0-9]\{4\}\)/p' contacts.txt

Замініть усі зустрічі “foo” на “bar” у data.txt:

sed 's/foo/bar/g' data.txt

Використання string для основних операцій з Regex

Команда string оболонки Fish підтримує прості операції з regex, такі як пошук за зразком і заміна:

Знайти зразок у рядку:

echo "fish 3.1.2" | string match -r '3\.[0-9]+\.[0-9]+'

Вивід:

3.1.2

Замінити цифри після ‘fish’ на ‘X.X.X’:

echo "Welcome to fish 3.1.2" | string replace -ra '([fish]+\s)[0-9\.]+' '$1X.X.X'

Вивід:

Welcome to fish X.X.X

Розширене зіставлення за допомогою awk

Надрукуйте другий стовпець даних, де перший стовпець відповідає певному зразку:

awk '$1 ~ /^a[0-9]+$/ {print $2}' datafile

Ця команда шукає рядки у datafile, де перший стовпець починається з “a”, за яким слідує одна чи більше цифр, і друкує другий стовпець.

Інтегруючи ці зовнішні команди, програмісти оболонки Fish можуть використовувати повну потужність регулярних виразів для складних завдань з маніпуляції текстом, покращуючи природні можливості оболонки.