파이프 그렙에서 그렙까지 색상 유지
그렙 후의 보존 색상에도 비슷한 질문이 있지만, 다른 그렙으로 색상이 지정된 그렙 출력을 파이프로 연결하면 색상이 보존되지 않는다는 것이 짜증납니다.
예를 들어grep --color WORD * | grep -v AVOID
첫 번째 출력의 색을 유지하지 않습니다.하지만 나는.ls | grep FILE
색깔을 유지하세요, 왜 다른가요?
grep
파이프에 쓸 때와 같이 색상 출력을 비활성화하는 경우가 있습니다.다음을 사용하여 이 동작을 재정의할 수 있습니다.grep --color=always
올바른 명령줄은 다음과 같습니다.
grep --color=always WORD * | grep -v AVOID
이것은 꽤 장황합니다. 또는 라인을 추가할 수 있습니다.
alias cgrep="grep --color=always"
당신에게.bashrc
예와 용례로cgrep
유색인종으로서.재정의할 때grep
의 특정 출력에 의존하는 스크립트에서 문제가 발생할 수 있습니다.grep
그리고 아스키 이스케이프 코드를 좋아하지 않습니다.
충고 한마디:
사용 시grep --color=always
다음 파이프로 전달되는 실제 문자열이 변경됩니다.이로 인해 다음과 같은 상황이 발생할 수 있습니다.
$ grep --color=always -e '1' * | grep -ve '12'
11
12
13
비록 그 옵션이-ve '12'
중간 선을 제외해야 합니다. 중간 선 사이에 색상 문자가 있기 때문이 아닙니다.1
그리고.2
.
기존 답변은 FIRST 명령이 다음과 같은 경우에만 해당됩니다.grep
(OP의 질문과 같이, 이 문제는 다른 상황에서도 발생합니다.)
보다 일반적인 답변
기본적인 문제는 BEFOR 명령이| grep
는 출력이 파이프로 이동한다는 것을 인식할 때 색상을 비활성화하여 "스마트"해지려고 합니다.일반적으로 이것은 ANSI 이스케이프 코드가 다운스트림 프로그램을 방해하지 않도록 하기 위해 사용자가 원하는 것입니다.
그러나 이전 명령에서 색상이 지정된 출력을 생성하려면 출력 싱크에 관계없이 색상 코드를 생성해야 합니다.강제 메커니즘은 프로그램마다 다릅니다.
Git: -c color.status= always 사용
git -c color.status=always status | grep -v .DS_Store
참고: 더-c
옵션은 하위 명령 앞에 와야 합니다.status
.
다른이들
(이것은 커뮤니티 위키 게시물이니 자유롭게 추가하세요)
파이프 끝에서 동일한 grep 명령을 반복하기만 하면 됩니다.
grep WORD * | grep -v AVOID | grep -v AVOID2 | grep WORD
언급URL : https://stackoverflow.com/questions/2327191/preserve-colouring-after-piping-grep-to-grep
'programing' 카테고리의 다른 글
개수, 크기, 길이...루비의 선택이 너무 많나요? (0) | 2023.06.01 |
---|---|
ORM은 NoSQL API와 중복됩니까? (0) | 2023.06.01 |
항목 연결에 빌드가 표시되지 않습니다. (0) | 2023.05.27 |
bash를 사용하여 단말기의 마지막 줄을 삭제하고 교체하는 방법은 무엇입니까? (0) | 2023.05.27 |
jQuery: 외부 html() (0) | 2023.05.27 |