J'ai le problème de recevoir trop d'informations après le match pour
grep -RnisI --color=auto "pseudomonas" *
Je veux seulement 20 caractères ou 10 mots après et avant le match.
Quel est le bon outil pour faire une telle chose?
J'ai le problème de recevoir trop d'informations après le match pour
grep -RnisI --color=auto "pseudomonas" *
Je veux seulement 20 caractères ou 10 mots après et avant le match.
Quel est le bon outil pour faire une telle chose?
Réponses:
cat file.txt | grep -o -P '.{0,20}string.{0,20}'
Cela devrait le faire pour vous
Mise à jour:
Si vous ne voulez pas cat, vous pouvez simplement utiliser le grep avec le fichier comme paramètre:
grep -o -P '.{0,20}pseudomonas.{0,20}' FileName.html
De plus, le -P utilise Perl Regex, qui, selon les pages de manuel, est expérimental, si vous voulez éviter cet indicateur, vous pouvez simplement utiliser egrep à la place:
grep -Eo '.{0,20}yourstring.{0,20}' yourtestfile.txt
> results.txt
à la fin de votre commande, mais il ne vous dira pas dans quel fichier vous l'avez trouvé.
pcregrep -MnirIso '(?s).{0,20}pseudomonas.{0,20}' . |
grep --color -e '^' -e pseudomonas
Suppose que les correspondances et leur contexte ne se chevauchent pas et que les noms de fichiers ne contiennent pas pseudomonas
.
Notez également que les numéros de ligne rapportés sont ceux du début du contexte.
-A1
et-B1
resp.), Mais c'est trop? Où voulez-vous exactement que votre sortie soit recadrée?