Добрвремсуток, джентльмены.
Прелюдия: Захотел погоду наблюдать при открытии терминала и добавил в .bashrc следующее:
$ curl -s ru.wttr.in/grytviken | sed '2,7!d'
Проблема: В выборке используются символы (диагональные стрелки, указывающие направления ветра), которые моим шрифтом (terminus) не поддерживаются.
Хотел записать в .bashrc условие, которое заменит символы на слова (северо-западный, южный и т.д.), но не смог выделить символ из строки. Визуально он постоянно находится на одной и той же позиции, но так как текст местами цветной, то из-за спецсимволов его фактическое положение в строке плавает, поэтому cut не подходит (а может, я просто не умею им пользоваться).
Попытался вырезать всё ненужное:
curl -s ru.wttr.in/uaa | sed '5!d' | tr -d [:space:][:punct:][:alnum:][:cntrl:]
Подскажите, 1. Как можно выделить символ из строки в данной ситуации? 2. Можно ли как-то иначе решить задачу с отображением символов?
Замена шрифта не подходит.
Решение: Добавил в .bashrc cледующее:
#погода
E=$(echo -e "\u2190")
S=$(echo -e "\u2191")
W=$(echo -e "\u2192")
N=$(echo -e "\u2193")
SE=$(echo -e "\u2196")
SW=$(echo -e "\u2197")
NW=$(echo -e "\u2198")
NE=$(echo -e "\u2199")
curl -s ru.wttr.in/grytviken?0 | tail -6 | sed "s/$N/ветер северный/; s/$NE/ветер северо-восточный/; s/$E/ветер восточный/; s/$SE/ветер юго-восточный/; s/$S/ветер южный/; s/$SW/ветер юго-западный/; s/$W/ветер западный/; s/$NW/ветер северо-западный/"
echo