Удалить определенный диапазон символов в sed с помощью специальных символов - PullRequest
0 голосов
/ 26 февраля 2019

Я пытаюсь привести в порядок мой ответ:

Ответ ServerID: 142 [90m [39mtestRuntime

Я пытаюсь отформатировать его следующим образом

Ответ ServerID: 142 testRuntime

Я считаю, [90m и [39 - некоторые управляющие символы из другого инструмента CLI, так как они появляются как пустые места, когда я не добавляю:tr -dc '[:print:] перед выводом ответа.

Я построил следующую команду sed, но она удаляет дополнительный M в testRuntime:

tr -dc '[:print:]' | sed 's/[\<\[90m\[39m\>]//g'

Как мне сделать точноеКоманда соответствия, включая специальные символы, но только если вся последовательность совпадает?

Заранее спасибо

1 Ответ

0 голосов
/ 26 февраля 2019

Внешние квадратные скобки в [\<\[90m\[39m\>] образуют выражение скобки , которое соответствует одному определенному в нем символу.Снятие скобок не решит проблему, так как вы используете \< и \> границы слов, которые здесь не предназначены для использования, так как [90m[39m должен быть удален в любом контексте.

Использование

sed 's/\[90m\[39m//g'

Это удалит любое число [90m[39m в строке, где угодно в файле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...