Запись в лог-файл определённой информации (не всего подряд)
Есть такой скрипт для получения статуса пользователя через Telegram CLI:
#!/bin/bash
name=$1
path=/home/user/tg
LOGFILE="/home/user/Bot/tg.log"
/home/user/bin/telegram-cli -k ${path}/tg-server.pub -W -e "user_info $name >> ${LOGFILE}"
exit 0
Я хочу записать в LOGFILE полученную информацию, то есть результат запроса
user_info $name
Сам результат выглядит примерно так:
@user (#id......):
phone: 7123456789
offline (was online [2021/03/31 14:50:50])
Но в файл помимо статуса записывается ненужная информация (приветственное сообщение и прочее) да ещё и в виде кракозябр. Как записать в файл только эти три строчки?
Файл с кракозябрами: https://i.stack.imgur.com/vrGhd.png
Ответы (1 шт):
Автор решения: Jigius
→ Ссылка
Добавьте постобработку полученных строк с помощью grep для отбора только нужных вам строк.
/home/user/bin/telegram-cli -k ${path}/tg-server.pub -W -e "user_info $name" | grep -E '^(@user|phone|offline)' >> ${LOGFILE}