왜 tldr인가 | xclip은 타임스탬프처럼 보이는 이스케이프 코드를 출력하며 이를 제거하는 방법은 무엇입니까?

왜 tldr인가 | xclip은 타임스탬프처럼 보이는 이스케이프 코드를 출력하며 이를 제거하는 방법은 무엇입니까?

문제

tldr의 출력을 클립보드에 복사한 다음 텍스트 편집기에 붙여넣고 싶습니다.

나는 다음을 실행한다:tldr pwd | xclip -sel clip

클립보드에서 붙여넣으면 다음과 같은 결과가 나타납니다.

pwd
[0mPrint name of current/working directory.More information: https://www.gnu.org/software/coreutils/pwd.

 - [23;22;24;25;32mPrint the current directory:
[23;22;24;25;33m   pwd
[0m
 - [23;22;24;25;32mPrint the current directory, and resolve all symlinks (i.e. show the "physical" path):
[23;22;24;25;33m   pwd -P
[0m[0m

타임스탬프를 없애고 싶고 왜 이런 일이 발생하는지 알고 싶습니다.

관찰

  • tldr pwd(xclip에 전달하지 않고) 타임스탬프를 표시하지 않습니다.
  • man pwd | xclip -sel clip붙여넣을 때 타임스탬프를 포함하지 않습니다.
  • 따라서 tldr을 xclip에 전달할 때만 이런 일이 발생하는 것을 발견했습니다.
  • 타임스탬프는 이스케이프 코드처럼 보입니다.

환경

  • 정적 호스트 이름: debian
  • 아이콘 이름: 컴퓨터 바탕화면
  • 섀시: 데스크탑
  • 운영 체제: Debian GNU/Linux 10(버스터)
  • 커널: 리눅스 4.19.0-17-amd64
  • 아키텍처: x86-64

답변1

이는 타임스탬프가 아닙니다. 색상 코드입니다.

에 따르면v0.91 변경 내역, 2021년 7월에 환경 변수를 설정하거나 새로운 명령줄 옵션을 사용하여 tldr색상을 비활성화하는 기능을 병합했습니다 .NO_COLOR--no-color

불행히도 v0.91 tldr많이현재 데비안에 있는 버전(0.6.4)보다 최신 버전입니다....따라서 데비안 패키지를 제거하고 직접 컴파일/설치하거나(*) 새 버전을 패키지로 요청하는 버그 보고서를 제출하세요. 아니면 둘다.

그것이 장기적인 해결책입니다. 단기적으로는 sed@GMaster의 답변에서와 같이 출력에서 ​​색상 코드를 제거하는 것이 최선일 것입니다.

(*) 나는 일반적으로 프로그램의 패키지 버전에서 자체 컴파일 버전으로 전환하는 것을 제안하지 않습니다(왜냐하면 그렇게 하면 호환성 문제나 향후 업그레이드 문제가 발생할 가능성이 높기 때문입니다). 비활성화되지 않는 것은 UI 혐오스러운 일입니다.

답변2

이는 에서 생성된 색상 코드입니다 tldr. 안타깝게도 tldr색상을 끌 수 있는 옵션이 없습니다. 그러나 tldr출력을 통과 시켜 sed색상 코드를 제거할 수 있습니다. 이 시도:

tldr pwd | sed $'s,\x1b\\[[0-9;]*[a-zA-Z],,g' | xclip -sel clip

또는 언급된 jpa 패키지를 기반으로 합니다.

# install colorized-logs package (for ubuntu)
sudo apt install colorized-logs

tldr pwd | ansi2txt | xclip -sel clip

관련 정보