Разбор по управляющим символам

Разбор по управляющим символам

Я пытаюсь проанализировать вывод команды, которая должна быть выведена на экран. В ней есть данные, разделенные последовательностями управления перемещением в исходное положение (для VT220, ESC[1;1H). Мне нужна только последняя часть (т. е. после последнего перемещения в исходное положение).

Я пробовал сделать это разными способами (в основном с помощью awk и sed), но проблема всегда в том, что части управляющей последовательности имеют особое значение (для программы, а не только для оболочки), и я не могу заключить их в кавычки, когда подставляю вывод tput.

Какие-либо предложения?

РЕДАКТИРОВАТЬ:

Вот пример того, что я собираюсь проанализировать ( ESCэто экранирующий символ):

Page 1; line 1
Page 1; line 2
ESC[1;1HPage 2; line 1
Page 2; line 2
ESC[1;1HPage 3; line 1
Page 3; line 2

Я хочу получить следующее: то, что будет на терминале после запуска программы.

Page 3; line 1
Page 3; line 2

решение1

Самый простой способ решить вашу проблему:

  1. вы конвертируете все элементы управляющей последовательности с помощью 'uuencode -m v' или 'xxd'
  2. теперь вы можете обрабатывать текст как обычно с помощью awk
  3. в конце концов вы делаете обратную конвертацию с помощью 'uudecode -o -' или 'xxd -revert'

Альтернативный вариант: bbe — sed-подобный редактор для двоичных файлов

если вам нужен более конкретный ответ, мне нужен более конкретный пример программы

Связанный контент