텍스트를 머리, 꼬리, 덜 등으로 전달하여 채색 할 수있는 방법이 있습니까?


26

텍스트의 컬러화를 유지 할 수있는 방법은 파이프를 통해 전달 거기 |head, tail, less, 등?


특정 출력 프로그램이 있습니까? 파이프를 통해 데이터를 전송하는 프로그램에 따라 다릅니다. head, tail등은 색상을 제거하는 것이 아니며 일반적으로 출력이 콘솔 (컬러), 파일 또는 파이프 (컬러 없음)로 이동하는지 확인하는 데이터를 생성하는 프로그램입니다.
KurzedMetal

답변:


15

나는 당신이 배관 중이고 ls터미널 색상 코드를 보존하고 싶다고 가정합니다 . 당신은 말할 수있다 ls --color=always(대신 기본의 --color=auto코드를 보존하는 것이다,)하지만이 일이있는 거 배관이 그들을 이해하는 방법을 알고 있음을 보장하지 않습니다.

glark대신 사용하면 grep색상으로 표시하려고 시도합니다.

less함께 사용하면 -R색상으로 표시하려고 시도합니다.


6
에서 배관 중입니다 git. 채색 git config color.diff always을 유지하는 유사한 구성 (예 :)을 가지고 있음을 발견했습니다 .
Timofey Gorshkov

1
@Errandir는 해당 구성의 문제점 git diff은 항상 ANSI 이스케이프 코드를 출력하기 때문에 출력을 입력으로 사용하는 스크립트 또는 명령을 중단한다는 것입니다 .
KurzedMetal

@Errandir, 감사합니다! git diff의 깨끗한 출력에 의존하는 스크립트가 없으므로 이것이 나를 위해 작동합니다! 고맙습니다 !
Ashutosh Jindal

나는 grep에 이것을 사용했다 : grep grep "string" file.txt | head의 결과가 채색되었는지 확인하기 위해 이것을 이것을 다음과 같이 바꿨다grep "string" file.txt --color=always | head
Emil Stenström

13

파이프에서 출력을 생성하는 프로그램에 따라 다릅니다.

head, tail등은 색상을 제거하는 것이 아니라 일반적으로 출력이 콘솔 (컬러), 파일 또는 파이프 (컬러가 아닌)로 이동하는지 확인하는 데이터를 생성하는 프로그램입니다

내가 찾은 또 다른 SU Q & A는 그들이 콘솔에 출력을 보내는 것처럼 출력하는 프로그램을 배관에 거짓말에 (와 콘솔을 에뮬레이트하는 방법을 보여주는 unbuffer)


color=auto프로그램이 출력을 파이프 대신 콘솔로 간다고 생각하도록 모드 에서 채색을 유지하는 방법이 있습니까?
Timofey Gorshkov

@KurzedMetal 프로그램 (예 head: tail, 등)은 다른 프로그램으로 파이프되고 있음을 감지하여 (컬러 등이없는 데이터를 생성 할 수 있도록)합니다.
Jorge Bucaran

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