터미널 출력 재해석

터미널 출력 재해석

apt-get update예를 들어 터미널에서 일부 명령을 실행하고 출력을 저장하는 프로그램이 있습니다 .

불필요한 정보가 모두 제거되도록 출력을 재해석하려면 어떻게 해야 합니까?

예를 들어 원래 출력은 다음과 같습니다(이는 출력의 작은 부분일 뿐입니다).

Reading package lists... 0%

Reading package lists... 0%

Reading package lists... 1%

Reading package lists... 6%

Reading package lists... 6%

Reading package lists... 26%

Reading package lists... 32%

Reading package lists... 32%

Reading package lists... 39%

Reading package lists... 39%

Reading package lists... 53%

Reading package lists... 65%

Reading package lists... 65%

Reading package lists... 68%

Reading package lists... 68%

Reading package lists... 83%

Reading package lists... 84%

Reading package lists... 84%

Reading package lists... 86%

Reading package lists... 86%

Reading package lists... 88%

Reading package lists... 88%

Reading package lists... 90%

Reading package lists... 90%

Reading package lists... 92%

Reading package lists... 92%

Reading package lists... 93%

Reading package lists... 93%

Reading package lists... 94%

Reading package lists... 94%

Reading package lists... 95%

Reading package lists... 95%

Reading package lists... 96%

Reading package lists... 96%

Reading package lists... 97%

Reading package lists... 97%

Reading package lists... 98%

Reading package lists... 98%

Reading package lists... 99%

Reading package lists... 99%

Reading package lists... 99%

Reading package lists... 99%

Reading package lists... Done

이는 bash에서 일반 명령을 실행하는 것처럼 해석되어야 합니다. 즉, 최종 출력은 다음과 같습니다.

Reading package lists... Done

답변1

사용합니다 col -b(Linux에서는 util-linux 패키지의 일부이고 다른 곳에서는 기본 시스템에 있음).

col은 역방향(및 반역방향) 개행을 필터링하므로 정방향 및 반방향 개행만 포함하여 출력이 올바른 순서로 표시됩니다.

답변2

명령 출력을 터미널에 기록하므로 터미널 기능을 사용하기로 결정됩니다. 특히, apt-get캐리지 리턴 문자를 사용하여 커서를 현재 줄의 시작 부분으로 다시 이동하고 해당 줄의 텍스트를 덮어씁니다.

캐리지 리턴 효과를 시뮬레이션하려면 해당 텍스트 앞의 모든 텍스트를 삭제하십시오.

<transcript sed 's/.*\r//'

사용자에게 표시하지 않고 출력만 기록하려면 리디렉션 script등을 사용하세요. 그러면 apt-get일반 텍스트가 표시됩니다.

관련 정보