Digamos que eu queira pesquisar por '123456789' e que esteja próximo de 'nome'. Existe uma forma de fazer isso?
Eu tenho 0 lógica para fazer isso. Talvez o pipe greps pudesse funcionar?
Que tipo de algoritmo é mais adequado para esse propósito?
Entrada:
search_string1='firstname' search_string2='123456789'
proximity_#_of_lines=10
Saída:
Encontre search_string1
e search_string2
exemplifique se eles têm 10 linhas próximas uma da outra. ou seja, se essas duas strings tiverem 10 linhas próximas uma da outra, exiba-as em um arquivo.
Uma abordagem padrão poderia ser:
A primeira
grep
garante que observemos apenas$distance
as linhas em torno$context
das linhas correspondentes. O 2º então vê se encontra$what_we_want
nessas2*$distance+1
linhas.Se você deseja apenas a linha correspondente como resultado, elimine o
-C "${distance}"
do 2ndgrep
.Supondo que as strings só possam aparecer uma vez em sua entrada e usando qualquer awk (não testado):