watch
파일을 실행하고 내용을 변경할 때 grep 명령의 출력이 표시되도록 실행하려고 합니다 .
일반적인 접근 방식은 잘 작동하지만 색상이 부족합니다.
watch grep 'something' **/*
...저는 색상을 정말 원했기 때문에 다음과 같이 했습니다.
watch grep 'something' **/* --color=always
시계가 색상을 작동시키는 이스케이프 코드를 구문 분석할 수 없기 때문에 여전히 보기 흉합니다. 그러다가 이것을 발견했습니다:
watch --color grep 'something' **/* --color=always
음... 그건 안 돼요. 출력이 이상한 방식으로 조각화/혼합됩니다. 어떤 이유로 한 줄만 표시되고 watch --color
grep은 약 20개를 출력하지 않습니다.
watch
컬러 출력을 어떻게 사용할 수 있나요 grep
?
분리된 사례:
다음을 사용하세요:
mkdir grep_test; cd grep_test
echo "asdsad\nasdasd\nsaasdasd" > file1
echo "test\n123\ntest" > file2
두 개의 파일을 만들고 다음 명령을 실행합니다.
grep test * --color=always
예상대로 작동하고 출력됩니다(색상 및 기타 항목 포함).
file2:test
file2:test
하지만 시계를 사용할 때:
watch --color 'grep test * --color=always'
아무것도 출력하지 않습니다. 이 --color
옵션이 없으면 ANSI 이스케이프가 해석되지 않더라도 올바른 출력이 표시됩니다. 나는 이것을 zsh가 포함된 tmux 세션의 Fedora 25에서 실행하고 있습니다.
또한 watch -v
출력은 다음과 같습니다.
watch from procps-ng 3.3.10
답변1
그것은 밝혀보다컬러 출력에 정말 효과적입니다. 하지만 특별히grep다음 사항에 따라 몇 가지 해결 방법을 취해야 합니다.grep --color ANSI 코드 ESC[K를 추가합니다 - 표시된 텍스트가 변경됩니다.)
watch --color "GREP_COLORS=ne grep --color=always .* *"