화면에 쓸 것으로 예상되는 명령의 출력을 구문 분석하려고합니다. 원점으로 이동 제어 시퀀스 (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
답변
문제를 처리하는 가장 쉬운 방법 :
- 모든 제어 순서를 ‘uuencode -mv’또는 ‘xxd’로 변환하십시오.
- 지금 당신은 awk에 의해 평소와 같이 텍스트 처리를 할 수 있습니다
- 결국 ‘uudecode -o-‘또는 ‘xxd -revert’로 다시 변환하십시오.
bbe-바이너리 파일을위한 sed-like 편집기
더 구체적인 답변이 필요한 경우 더 구체적인 프로그램 샘플이 필요합니다.