배쉬 : 컬러 복사 / 붙여 넣기


12

모두들처럼, 나는 내 bash에 약간의 채색 된 출력을 가지고 있습니다. 예를 들어 추출을 HTML 편집기로 복사 할 때 색상이 지정된 구문을 유지하고 싶습니다. 이것을 처리하는 방법이 있습니까?

감사.

답변:


17

이 같은 일부 명령 줄 유틸리티의 색상 화 출력에 대해 이야기하는 경우 ls, grep, cmake, git diff, 등, 노트, 그것은 GNU 배쉬 어떤 관계가없는하시기 바랍니다.

어쨌든 ANSI 이스케이프 시퀀스로 채색 된 출력을 HTML로 변환하기위한 몇 가지 도구가 있습니다.

  • aha 같은 이름의 패키지에서
  • ansi2html에서 HTML :: FromANSI 펄 모듈 (우분투의 repo에 포장하지, CPAN에서 설치할 수 있습니다)
  • ansi2html.shpixelb에 의해 (패키지되지 않음, git에서 다운로드)

이들의 사용법은 다소 간단합니다. 터미널 이스케이프 시퀀스를 읽고 stdinHTML을 넣습니다 stdout. 그러나 참고 : 대부분의 유틸리티는 터미널로 가지 않으면 출력에 색상을 지정하지 않습니다. 컬러 출력을 명시 적으로 생성하도록 주문해야합니다. 예 :

$ ls --color=always | aha | xsel -i -b

xsel -i -b 여기에서 HTML을 클립 보드에 복사합니다.


이것은 aha아름답게 작동했습니다. 대단히 감사합니다!
ShreevatsaR

2
아하-화려한! 이것은 나에게 거의 완벽합니다. 형식이 지정된 텍스트를 복사하려면 tmp로 라우팅하고 브라우저에서 연 다음 다른 사이트와 마찬가지로 복사 / 붙여 넣기로 조정했습니다. git -c color.ui=always diff | aha > /tmp/diff.html && firefox /tmp/diff.html ... 예, OP가 HTML을 원한다는 것을 알고 있지만 많은 사람들이 여기에서 우연히 발견됩니다. 일반적으로 형식.
Sage

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.