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


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.