명령 출력에서 ​​패턴 강조 표시(grep과 유사하지만 행을 제외하지 않음)

명령 출력에서 ​​패턴 강조 표시(grep과 유사하지만 행을 제외하지 않음)

특정 명령의 출력에서 ​​특정 기호 시퀀스의 색상을 지정하는 명령이 필요합니다. 나는 그것을 원한다. 그대로이다 grep.

$ some-command | grep symbol-sequence

그러나 grep포함되지 않은 행은 삭제됩니다 symbol-sequence. 모든 원본 줄을 강조 표시하고 싶습니다 symbol-sequence. 어떻게 할 수 있나요?


내가 alias grep='grep --color=auto'거기있어~/.bashrc

답변1

당신은 그것을 사용할 수 있습니다ANSI 제어 문자:

some-command | sed 's/symbol-sequence/^[[0;32;2m symbol-sequence^[[0;0m/'

이러한 문자는 일반 문자 뒤에 일반 문자가 오는 ^[것이 아닙니다 . 인쇄할 수 없는 문자입니다. 대부분의 터미널에 입력하여 얻을 수 있습니다 . 두 번째는 사실입니다 .^[Ctrl-v Ctrl-Esc[[

전체 ASCII를 선호하는 경우 동일한 효과를 갖는 복사-붙여넣기 버전은 다음과 같습니다.

some-command | sed 's/symbol-sequence/\x1B[0;32;2m symbol-sequence\x1B[0;0m/'

위 명령에서 "32"와 "2"를 변경하여 출력의 색상과 스타일을 변경할 수 있습니다. 자세한 내용과 색상 코드를 보려면 검색 엔진에서 "ANSI 이스케이프 시퀀스"를 찾아보세요.

관련 정보