Вот решение:
check host [Elasticsearch]-test with address 1.2.3.4
if failed
port 9200
protocol http
then exec "/alerting/monit2telegram/monit2telegram.sh"
else if succeeded then exec /alerting/monit2telegram/monit2telegram.sh"
Он выполнится снова, когда хост вернется в нормальное состояние.
Простым решением было бы использовать awk и указать |
в качестве разделителя полей.
awk 'BEGIN {FS="|"} ; {print $1"|"$3}'
Это напечатает первое и третье поля. Итак, для вашего примера я получаю:
PB.1.1|transcript/55100 9207.33 13266.4 15244.3 2844.27 2708.52 2731.91 3193.83 2675.78 3413.74 4001. 37 3332.62
PB.2.1|transcript/24543 14.2016 27.8457 29.6335 7.14533 7.34512 7.64953 8.71118 6.87958 7.228 98 6.3592 5.94422
PB.2.2|transcript/30117 2.70221 2.74091 2.81943 3.99669 2.69497 2.82466 3.01701 2.62054 2.958 49 2.48024 2.44429
PB.2.3|transcript/35082 1.21596 1.76974 2.24733 1.76356 2.05692 1.7765 1.65524 1.44116 1.970 26 2.16288 1.50391
PB.3.1|transcript/44399 71.0007 131.61 145.062 24.9771 23.0295 24.9615 26.8033 20.4961 25.36 6 26.6337 21.9282
PB.4.1|transcript/24897 26.5017 37.3793 43.4624 11.1199 8.80527 8.18072 12.612 10.0202 12.24 37 8.06654 7.04677
PB.4.2|transcript/39771 9.23018 9.89149 7.58203 10.1779 8.67577 7.9611 8.5775 9.83895 7.638 42 6.40913 6.58653
PB.4.3|transcript/29985 20.8149 20.6359 14.5622 3.89209 3.92182 3.4396 4.53606 2.6505 3.979 53 2.92956 2.63565
PB.5.1|transcript/24019 36.302 19.7211 18.3107 71.1272 70.6337 65.391 62.6371 61.8226 67.62 43 55.2076 57.7828
sed -e 's/|.\{33\}//w test2.txt' test.txt
Это сработало хорошо, спасибо всем, несмотря ни на что.
Протестировано с помощью команды «Ниже» и работает нормально
команда
sed 's/|.*|transcript\/[0-9]\{5\} /| /g' filename