О escape последовательностях и regexp

Была у меня задача распарсить вывод с утилиты схожей с top и по cron’y отправлять на почту.  Через cat значит все ровно и красиво, а на почте


9 36 user proc
8 32 user 
proc
3 12 user 
proc
2 8 user 
proc
2 8 user 
proc
1.66667 6.66667 user 
proc[m
1 4 user 
proc
1 4 user [;
proc
1 4 user [;
proc
1 4 user roc


А вот

cat log | mail -s re user
отправляет бинарник

Проблема оказалась в цветном выводе этой утилиты и отсутствия опции —no-color, а именно escape последовательностях, которые записались в файл.

Вылечилось при помощи sed -i 's;\[\;m;;g;s;\[m;;g;'

В этих escape последовательностях должны быть еще и цифры, но их убил другой regexp.

Leave your comment