Как в выводе bash скрипта подсветить определенные слова?

Подскажите пожалуйста.
Хочу написать простенький скрипт для облегчения разбора трассировки iptables.
#!/bin/bash
tail /var/log/syslog -n $1 | cut -d" " -f8-10,12-13,20-22,31

Вот что получается
filter:FORWARD:rule:6 IN=eth2 OUT=eth0 SRC=91.210.170.11 DST=10.200.2.2 PROTO=TCP SPT=40860 DPT=22 MARK=0x210014
filter:WWW_SERV_FILTER:rule:17 IN=eth2 OUT=eth0 SRC=91.210.170.11 DST=10.200.2.2 PROTO=TCP SPT=40860 DPT=22 MARK=0x210014
filter:FORWARD_ACCEPT:rule:1 IN=eth2 OUT=eth0 SRC=91.210.170.11 DST=10.200.2.2 PROTO=TCP SPT=40860 DPT=22 MARK=0x210014
raw:PREROUTING:policy:3 IN=eth2 OUT= SRC=91.210.170.11 DST=178.217.153.77 PROTO=TCP SPT=40860 DPT=10022
mangle:PREROUTING:rule:6 IN=eth2 OUT= SRC=91.210.170.11 DST=178.217.153.77 PROTO=TCP SPT=40860 DPT=10022
mangle:WWW_SERV:rule:1 IN=eth2 OUT= SRC=91.210.170.11 DST=178.217.153.77 PROTO=TCP SPT=40860 DPT=10022
mangle:WWW_SERV:rule:3 IN=eth2 OUT= SRC=91.210.170.11 DST=178.217.153.77 PROTO=TCP SPT=40860 DPT=10022
mangle:WWW_SERV:return:5 IN=eth2 OUT= SRC=91.210.170.11 DST=178.217.153.77 PROTO=TCP SPT=40860 DPT=10022

Выводит в таком виде, но чтобы это не была просто черно-белая простыня, хочу подсветить ключевые слова разными цветами. (имена таблиц raw,mangle,nat,filter и поля IN, OUT, SRC, DST и тд.)
Подскажите, как это можно сделать?
  • Вопрос задан
  • 273 просмотра
Решения вопроса 1
@PATRI0T Автор вопроса
#!/bin/bash
tail /var/log/syslog -n $1 | cut -d" " -f8-10,12-13,20-22,31 | \
sed '
s/filter/\o33[32m&\o033[0m/g;
s/mangle/\o33[33m&\o033[0m/g;
s/raw/\o33[31m&\o033[0m/g;
s/nat/\o33[35m&\o033[0m/g;
s/OUT/\o033[1m&\o033[0m/g;.
s/IN/\o33[1m&\o033[0m/g;.
s/PROTO/\o33[1m&\o033[0m/g;.
s/MARK/\o33[1m&\o033[0m/g;.
s/DPT/\o33[1m&\o033[0m/g;.
s/SPT/\o33[1m&\o033[0m/'

5ec532f30e89d337340660.png
Да, получилось, спасибо
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@pfg21
ex-турист
гугли "цвет в баше" куа описаний.
https://habr.com/ru/post/119436/
Ответ написан
Комментировать
shurshur
@shurshur
Сисадмин, просто сисадмин...
echo -e '\e[31;1mПривет!\e[0m'

За подробностями man console_codes.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы