제어 문자로 구문 분석 : 마지막으로 이동

화면에 쓸 것으로 예상되는 명령의 출력을 구문 분석하려고합니다. 원점으로 이동 제어 시퀀스 (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. 모든 제어 순서를 ‘uuencode -mv’또는 ‘xxd’로 변환하십시오.
  2. 지금 당신은 awk에 의해 평소와 같이 텍스트 처리를 할 수 있습니다
  3. 결국 ‘uudecode -o-‘또는 ‘xxd -revert’로 다시 변환하십시오.

bbe-바이너리 파일을위한 sed-like 편집기

더 구체적인 답변이 필요한 경우 더 구체적인 프로그램 샘플이 필요합니다.