문제는 경기가 끝난 뒤 너무 많은 정보를 얻는다는 점이다.
grep -RnisI --color=auto "pseudomonas" *
경기 전후에 20자 또는 10단어만 얻고 싶습니다.
이와 같은 작업을 수행하는 올바른 도구는 무엇입니까?
답변1
cat file.txt | grep -o -P '.{0,20}string.{0,20}'
이것은 당신에게 도움이 될 것입니다
고쳐 쓰다:
고양이를 원하지 않으면 grep을 사용하고 파일을 인수로 사용할 수 있습니다.
grep -o -P '.{0,20}pseudomonas.{0,20}' FileName.html
또한 -P는 Perl Regex를 사용합니다. 매뉴얼 페이지에서는 이것이 실험적이라고 말합니다. 해당 플래그를 피하려면 대신 egrep을 사용할 수 있습니다.
grep -Eo '.{0,20}yourstring.{0,20}' yourtestfile.txt
답변2
pcregrep -MnirIso '(?s).{0,20}pseudomonas.{0,20}' . |
grep --color -e '^' -e pseudomonas
일치 항목이 있고 해당 컨텍스트가 겹치지 않으며 파일 이름에 pseudomonas
.
또한 보고되는 줄 번호는 컨텍스트 시작 부분의 줄 번호입니다.