2016-02-11 2 views
-1

Я пытаюсь заменить некоторую последовательность символов пробелом. Но я не могу его заменить.Как заменить цветные символы пустым sed

Имя файла Test:

id  ^[[0mevent^[[0m   ^[[0msuite^[[0m          ^[[0mok^[[0m  ^[[0mnok^[[0m ^[[0mskip^[[0m test up  owner  du  duplex type stp    inst_type prep created    finished 

Я пытаюсь заменить ^[[0m с пробелом. Для этого я использую следующую команду для достижения вышеупомянутой задачи.

sed 's/\^\[\[0m//g' Test 

Однако вышеуказанная команда не оказывает воздействия.

Проблема связана с цветным шрифтом.

enter image description here

Спасибо !!

+1

[Здесь, это делает их удалить ] (http://ideone.com/PSh15G). –

+0

Спасибо Wiktor, я использовал O вместо 0. –

+0

@ WiktorStribiżew текст имеет цвет, возможно, из-за этого я не могу заменить его пустым. Ваши команды работают для обычного текста, но цветного текста. –

ответ

0

Я использовал следующую команду, чтобы заменить цветной текст:

sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g" abc 

Источник: http://www.commandlinefu.com/commands/view/3584/remove-color-codes-special-characters-with-sed

+0

Действительно '[m | K]'? Знаете ли вы, что это такое? –

+0

'M',' K' или '' '. Проверьте * символ символа регулярного выражения * понятие в Интернете. –

1

Вы заменяете его на z, просто удалите z также вместо 0, кажется, что вы набрали большой O. Измените его на 0 то он будет работать очень хорошо:

~$ echo "id  ^[[0mevent^[[0m   ^[[0msuite^[[0m"|sed 's/\^\[\[0m//g' 
id  event   suite 
+0

Извините, я заменяю его пустым. z была опечаткой –

+0

@JohnRambo Оформить заказ. – Kasramvd

+0

текст имеет некоторый цвет шрифта, поэтому я не могу его заменить пустым –

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