Linux2010.03.17 16:24
grep --color=auto 를 하면 자동으로 색상을 넣어주는데
검색 키워드를 "빨간색"으로 넣어주는 기능이 좀 마음에 든다.
그런데 가끔, 검색 내용뿐만 아니라 전체 내용에서 그 부분만 색상을 바꾸고 싶다면 어떻게 하면 되려나?
(일종의 터미널용 문법강조/신택스 하이라이트/syntax highlight)

grep 명령어에는 Before & After를 지원한다.
       -A NUM, --after-context=NUM
              Print NUM  lines  of  trailing  context  after  matching  lines.
              Places  a  line  containing  --  between  contiguous  groups  of
              matches.

       -B NUM, --before-context=NUM
              Print  NUM  lines  of  leading  context  before  matching lines.
              Places  a  line  containing  --  between  contiguous  groups  of
              matches.

[링크 : http://linux.die.net/man/1/grep]

검색어의 앞뒤로 조금더 출력해주느 기능인데, 검색어들 간에 거리가 적당하게 유지된다면
특정값을 넣어주면, 전체 문서에서 그 부분만 색상이 변해서 나오게 된다.

문서의 전체 길이를 재려면
"wc -l" 로 하면되고
       -l, --lines
              print the newline counts

[링크 : http://linux.die.net/man/1/wc]

파일이 아닐경우 pipe를 통해 넘겨주면 된다.

예를들어 grep의 manpage 에서 it만 강조하고 싶다면
# man grep | grep -A `man grep | wc -l` -B `man grep | wc -l` it
라고 입력하면 된다.

아래는 it의 빈도가 낮아서 a로 바꾸어서 검색해본 결과.
a에만 색상이 나오고 터미널 스크롤바는 길어지고 ㅋㅋ

음.. 깔끔한 방법은 없나?

Posted by 구차니

댓글을 달아 주세요

  1. 매직으로 칠해줍니다.

    2010.03.17 18:31 [ ADDR : EDIT/ DEL : REPLY ]