
텍스트에서 특정 표현을 강조하는 명령이 있나요?
저는 '검색' 기능과 같은 기능을 찾고 있지만 뷰어 대신 표준 출력에 일반 텍스트가 출력됩니다 less
.
예:
$ cat test.txt | highlight "an"
전망안아프가니스탄에서 NATO의 질서있는 철수안이스트안하미드 카르자이 뎀 대통령 시절 두 번의 좌절을 겪었다.안미군에 대한 제한을 설정하다안d 탈리브안평화회담을 중단했다.
지정된 정규식을 강조 표시하기 위해 색상이나 다른 수단을 사용할 수 있습니다.
답변1
이것이 기능 때문인지 아니면 숨겨진 부작용 때문인지는 확실하지 않지만 GNU grep
2.11에서는 작동합니다.
grep --color 'an\|' test.txt
답변2
확인--passthru
이 작업을 수행하는 옵션이 있습니다 .
ack --passthru an test.txt
some_command | ack --passthru an -
답변3
내 스크립트를 시험해 볼 수 있습니다. 파일을 지정하거나 표준 입력을 사용할 수 있습니다. 강조 표시하려는 텍스트에 대해 Python 정규식을 정의할 수 있습니다. 강조 표시된 텍스트는 기본적으로 네온 녹색으로 설정되어 있습니다(저는 검정색 배경을 사용합니다!). 하지만ANSI 색상 코드.
#!/usr/bin/env python
import sys
import re
def highlight_text(text,pat):
def replacement_funk(matchobj): return '\x1b[42m%s\x1b[0m'%matchobj.group(0)
return re.sub(pat,replacement_funk,text)
if __name__ == '__main__':
if len(sys.argv) == 2:
input = sys.stdin
pat = sys.argv[1]
elif len(sys.argv) == 3:
input = open(sys.argv[2])
pat = sys.argv[1]
else:
sys.stderr.write("colorme pattern [inputfile]")
text = input.read()
print highlight_text(text,pat)
여기안예.
blessburn@blessburn:/tmp$ cat test.txt | ./colorme.py an
전망안아프가니스탄에서 NATO의 질서있는 철수안이스트안하미드 카르자이 뎀 대통령 시절 두 번의 좌절을 겪었다.안미군에 대한 제한을 설정하다안d 탈리브안평화회담을 중단했다.
blessburn@blessburn:/tmp$ ./colorme.py '(Af.*? |NA[\w]{2})' test.txt
질서정연한 전망나토탈퇴아프가니스탄하미드 카르자이 대통령이 미군 병력 제한을 요구하고 탈레반이 평화 회담을 중단하면서 두 차례의 좌절을 겪었습니다.
답변4
$cat test.txt | grep --colour=auto -C 100000 an
"색상"도 작동합니다. grep이 항상 옵션을 사용하도록 별칭을 정의할 수도 있습니다.
alias grep='grep --colour=auto -C 100000'
위의 내용을 /etc/profile.d/ 어딘가나 .bashrc 등에 넣으십시오.