[unix] 경기 전후 20자를 잡으려면

경기 후 너무 많은 정보를 얻는 문제가 있습니다

grep -RnisI --color=auto "pseudomonas" *

경기 전후 20 문자 또는 10 단어 만 얻으려고합니다.

그러한 일을하는 올바른 도구는 무엇입니까?



답변

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


답변

pcregrep -MnirIso '(?s).{0,20}pseudomonas.{0,20}' . |
  grep --color -e '^' -e pseudomonas

일치하는 항목과 해당 컨텍스트가 겹치지 않으며 파일 이름에 포함되지 않은 것으로 가정합니다 pseudomonas.

또한보고 된 행 번호는 컨텍스트의 시작 번호입니다.


답변