텍스트에서 특정 표현을 강조하는 명령이 있나요?
나는 less에서 "검색" 기능과 같은 것을 찾고 있지만 뷰어 대신 stdout에서 일반 텍스트 출력을 사용합니다 less
.
예:
$ cat test.txt | highlight "an"
전망하나NATO, 아프가니스탄에서 질서있게 철수하나예하나하미드 카르자이 대통령은 집권 후 두 번의 좌절을 겪었다.하나미군에 대한 제한하나d 탈레반하나평화 회담은 중단되었습니다.
지정된 정규식을 강조 표시하기 위해 색상이나 다른 방법을 사용할 수 있습니다.
답변1
이것이 기능 때문인지 숨겨진 부작용 때문인지는 확실하지 않지만 grep
GNU 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 또는 다른 위치에 넣으십시오.