1

Тема: Як видалити всі "неправильні" символи?

Вітаю.
Нещодавно мій погодний скрипт почав видавати помилку, і як виявилось, текст погоди почав містити якийсь незрозумілий символ, котрий не оброблюється i3blocks, і через це вилазить помилка.
Виглядає той символ ось так

і через нього вихідний рядок в мене ось такий

<span font="Trebuchet MS"><span color="#ffdd83"></span> <span color="#fafcd6">12 °C</span> � ↓ <span color="#42f448">0 km/h</span></span>

Як відловити того символа в якомусь sed'і, аби видалити?

2

Re: Як видалити всі "неправильні" символи?

Я не шарю в ніксах, тимпаче в вебі. Але просто немає якоїсь ф-ції типу replace? щоб замінити його на пробіл.

3

Re: Як видалити всі "неправильні" символи?

там головне питання - як його вичепити в sed'івському регексі

4

Re: Як видалити всі "неправильні" символи?

Підозрюю, що ви десь загубили оригінальний символ. Навряд чи в прогнозі буде знак-замінник (replacement character).

Подякували: FakiNyan1

5

Re: Як видалити всі "неправильні" символи?

Вам потрібно витягнути з того символа hex значення. Потім вибрати діапазон, в який входить даний символ, і фільтрувати через \x....
Щось таке :

[\xEF0000-\xEFFFFF]*
Подякували: FakiNyan1

6

Re: Як видалити всі "неправильні" символи?

Можливо, ось цей варіант допоможе:

$ echo '<span font="Trebuchet MS"><span color="#ffdd83"></span> <span color="#fafcd6">12 °C</span> � ↓ <span color="#42f448">0 km/h</span></span>' | w3m -T text/html -dump  | sed "s|\xef\xbf\xbd||;s|\xef\x80\x8d||" | xargs
12 °C ↓ 0 km/h
Подякували: FakiNyan1

7

Re: Як видалити всі "неправильні" символи?

А ще краще, витягти самі значення за допомогою awk

$ echo '<span font="Trebuchet MS"><span color="#ffdd83"></span> <span color="#fafcd6">12 °C</span> � ↓ <span color="#42f448">0 km/h</span></span>' | awk -F'[><]' '{print $9"\n"$13}'
12 °C
0 km/h
Подякували: ReAl, FakiNyan2

8

Re: Як видалити всі "неправильні" символи?

Там стрічочка вниз теж потрібна. Це продовження теми з іншими вхідними даними.

9

Re: Як видалити всі "неправильні" символи?

koala написав:

Підозрюю, що ви десь загубили оригінальний символ. Навряд чи в прогнозі буде знак-замінник (replacement character).

наче так, але  тоді як той символ там з'являється?
ось така команда не показує того символа

curl -sS "http://wttr.in?0&T&Q"

а ось ця вже показує, але ж я просто ріжу і показую перші три лінії, звідки воно там береться?

curl -sS "http://wttr.in?0&T&Q" | cut -c 16- | head -3

10 Востаннє редагувалося ZEN (26.05.2019 12:09:46)

Re: Як видалити всі "неправильні" символи?

ReAl написав:

Там стрічочка вниз теж потрібна. Це продовження теми з іншими вхідними даними.

А такий варіант підійде?

$ curl -sS "http://wttr.in?0&T&Q&format=1"
⛅️ +24°C

$ curl -sS "http://wttr.in?0&T&Q&format=2"
⛅️ ????️+24°C ????️↓19 km/h

$ curl -sS "http://wttr.in?0&T&Q&format=3"
Odesa, Ukraine: ⛅️ +24°C

$ curl -sS "http://wttr.in?0&T&Q&format=4"
Odesa, Ukraine: ⛅️ ????️+24°C ????️↓19 km/h

Цікаво... Форум не дозволяє надіслати повідомлення так, щоб замість "????" були нормальні символи. Якщо надіслати повідомлення без блоку code, то форум видає помилку 503 :)

Подякували: ReAl, leofun01, FakiNyan3

11

Re: Як видалити всі "неправильні" символи?

ZEN написав:
ReAl написав:

Там стрічочка вниз теж потрібна. Це продовження теми з іншими вхідними даними.

А такий варіант підійде?

$ curl -sS "http://wttr.in?0&T&Q&format=1"
⛅️ +24°C

$ curl -sS "http://wttr.in?0&T&Q&format=2"
⛅️ ????️+24°C ????️↓19 km/h

$ curl -sS "http://wttr.in?0&T&Q&format=3"
Odesa, Ukraine: ⛅️ +24°C

$ curl -sS "http://wttr.in?0&T&Q&format=4"
Odesa, Ukraine: ⛅️ ????️+24°C ????️↓19 km/h

Цікаво... Форум не дозволяє надіслати повідомлення так, щоб замість "????" були нормальні символи. Якщо надіслати повідомлення без блоку code, то форум видає помилку 503 :)

ги, а я писав скрипта, котрий замінював текстову репрезинтацію стану погоди на іконку, а воно виявляється, що вже там все є, от я дурний... тепер тре буде ще раз переписати скрипта, аби працював з format=2, дякую.

12 Востаннє редагувалося ZEN (26.05.2019 21:45:51)

Re: Як видалити всі "неправильні" символи?

Радий допомогти. :) До речі, там ще є можливість вказати свій формат:
https://github.com/chubin/wttr.in/blob/ … ine-output

Подякували: FakiNyan1