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 можуть використовувати повну потужність регулярних виразів для складних завдань з маніпуляції текстом, покращуючи природні можливості оболонки.