3

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

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

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

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

Вот пример того, что я ищу для анализа (ESC - escape-символ):

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

0

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .