Regex로 터미널을 전역적으로 색칠하기

Regex로 터미널을 전역적으로 색칠하기

나는 많은 프로그램이 컬러(vim, ack, color-ls 등)를 사용한다는 것을 알고 있지만 여전히 흑백을 사용하는 경우가 많습니다.

정규식을 기반으로 출력 색상을 지정하는 스크립트(예: "'dog' 빨간색과 일치하는 모든 항목 만들기")가 있지만 파이프를 사용하여 호출해야 합니다. 예: "> cat myfile | color dog red" 이는 아무 쓸모가 없습니다. 인터렉티브.

내가 찾고 있는 것은 터미널 에뮬레이터(또는 실제로 이 작업을 수행하는 터미널)를 연결하고 현재 사용 중인 셸이나 프로그램과 관계없이 주어진 정규식과 일치하는 모든 항목에 색상을 지정하는 것입니다. 이것이 ncurses에서도 작동한다면 정말 좋을 것입니다. 흑백 프로그램이 너무 많아서 키워드가 나타나거나 입력될 때 강조 표시/색상을 지정하는 키워드 목록을 지정할 수 있다면 좋을 것입니다.

저는 아마도 GNOME 터미널을 사용하는 Guake 콘솔을 사용하고 있는데, GNOME에 이미 이 기능이 있는지는 모르겠습니다.

답변1

짧은 버전은 다음과 같습니다예, 다른 프로그램과 마찬가지로 쉘에서 출력을 파이프할 수 있습니다.

거기에서 원하는 것을 사용할 수 있습니다.

$ bash | sed "$(echo -e "s@dog@\e[31mdog\e[0m@g; s@more here@more here@g;")"

내 '무지개'를 추가하겠다고 생각했습니다. 즐기다:

for((b=0;$b<8;b++)); do echo -ne "\e[4${b}m4$b : "; \
  for((f=0;$f<8;f++)); do echo -ne "\e[3${f}m3${f}"; done; echo -e "\e[0m"; done

답변2

저는 여전히 이 기능을 갖춘 Linux 터미널 에뮬레이터를 찾고 있지만, macOS X를 사용하는 이 글을 읽고 있는 분들을 위해:

  • 얻다iTerm2(OS X에서 많은 명령줄 작업을 수행하는 경우 어쨌든 이 기능이 필요할 것입니다.) "설정 > 프로필 > 고급"으로 이동한 다음 "트리거" 아래의 "편집"을 클릭하세요. 여기에서 다음과 같은 정규식을 사용하여 트리거를 추가 ^.*\[ERROR\].*$하고 작업을 "텍스트 강조 표시"로 설정하고 매개 변수를 "빨간색 전경"으로 설정할 수 있습니다.

답변3

아마도 이보다 더 나은 솔루션이 있을 수 있지만 다음과 같이 Expect를 사용하여 간단한 작업을 수행할 수도 있습니다.http://expect.nist.gov/. TCL을 피하려는 경우 다른 많은 프로그래밍/스크립팅 언어에 사용할 수 있는 라이브러리가 있습니다.

일반적으로 TCL은 대화형 프로그램을 자동화하는 데 사용되지만 대화형으로 만드는 것도 가능합니다.

나는 당신에게 시작할 수 있는 몇 가지 코드를 제공하고 싶지만 나 자신은 꽤 오랫동안 그것을 사용하지 않았습니다.

답변4

나는 KDE Konsole(적어도 KDE3 버전)이 이것을 할 수 있다고 확신하지만 KDE4에서는 지원을 볼 수 없습니다.

~할 수 있다grep으로 다음과 같이 뭔가를 해보세요:

grep -C 99999 --color <whatever>

이는 일치 항목을 강조 표시해야 하지만 전체 파일만큼 많은 컨텍스트를 포함해야 합니다.

관련 정보