2013-07-28 3 views
0

Я перенаправлять вывод вызова API в файлудалить набор символов, окружающих значение

однако я всегда получаю следующие символы, окружающие значение мне нужно

domainid='^[[39;49;00m^[[33;01m75307d12-e3f4-4a96-ac23-e2a9439f8299^[[39;49;00m' 

Желаемая выход

domainid='75307d12-e3f4-4a96-ac23-e2a9439f8299' 

Я действительно не знаю, как очистить выход и сделать его похожим на выше.

Любые предложения будут высоко оценены.

Спасибо

ответ

1

Вы можете удалить ненужные символы, заменив строку с только submatches вы хотите сохранить:

... | sed -r "s/(domainid=).*([0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}).*/\1'\2'/i" 
2

Те управляющие символы ANSI, или управляющие последовательности, и они, как правило, используются для добавления цвета, подчеркивание, и так далее, чтобы ваш выход.

Первый заказ бизнеса - проверить, поддерживает ли ваш инструмент командной строки API режим без цвета. Это решит вашу проблему у источника.

Запрет на это, попробуйте this Server Fault answer, у которого есть команда очистить последовательности ANSI из текстового файла, используя sed.

Смежные вопросы