ncurses 라이브러리를 사용하여 프로그램을 빌드할 때 출력을 파일로 리디렉션하는 방법

ncurses 라이브러리를 사용하여 프로그램을 빌드할 때 출력을 파일로 리디렉션하는 방법

중복 가능성:
스크립트 출력에서 ​​제어 문자(콘솔 코드/색상 포함) 제거

이 모드에서 출력을 파일로 리디렉션하면 top >> somefile.txt출력에 많은 쓰레기 값이 표시됩니다. 그러나 top배치( top -b -n1 >> somefile.txt) 옵션으로 인해 파일 출력은 요청 시 이루어집니다. 유사한 프로그램의 경우 nethogs그러한 옵션이 없습니다. 이 경우 좋은 결과가 있습니까?

답변1

정크를 직접 필터링해 볼 수도 있습니다. 예를 들어, 인쇄할 수 없는 모든 문자가 제거됩니다.

nethogs | sed 's,[^[:print:]],,g' >> somefile.txt

필요에 따라 이를 확장하거나 반대 접근 방식을 취하여 명시적인 가비지가 아닌 항목만 통과하도록 허용할 수 있습니다. (영숫자 및 구두점):

nethogs | sed 's,[^[:alnum:][:punct:]],,g' >> somefile.txt

출력이 색상으로 구분된 경우 색상 이스케이프 문자열을 제거하려면 몇 가지 추가 작업이 필요합니다.

답변2

이를 수행하는 좋은 방법은 없지만 때로는 터미널을 설정하는 것이 도움이 될 수 있습니다.

예를 들어,

TERM=dumb top

대부분의 제어 문자를 제거했습니다.

관련 정보