Est-il possible de faire apparaître grep un nombre maximum de mots avant et après le match? Par exemple, étant donné la ligneGrep: max mots avant et après le match
aaa bbb ccc ddd eee fff ggg hhh iii jjj kkk lll mmm nnn ooo ppp qqq rrr sss
Je voudrais grep ne pas revenir ligne entière, mais seulement, disons, 3 mots avant et après le match. par exemple, la recherche de « iii », le résultat serait
fff ggg hhh iii jjj kkk lll
J'ai essayé cela, mais ne renvoie aucun résultat:
grep -o '\w{0, 20}MY_SEARCH\w{0, 20}' *
Pouvez-vous s'il vous plaît donner des précisions sur votre question de ce que vous avez l'intention de faire? –
Je ne pense pas que 'grep' puisse le faire. Vous devrez peut-être écrire un petit script comme ceci 'awk '{pour (i = 1; i <= NF; i ++) if ($ i ==" iii ") {pour (k = i-3; k <= i + 3; k ++) printf ("% s", $ k)} print ""} 'filename' –
J'ai modifié le message avec un nouveau script..Vérifiez cela – Raghuram