Linux GREP / SED [xargs] encontra o padrão e número da linha em arquivos e remove com o SED

Minha situação é:

Eu tenho uma cadeia de texto muito longa, contendo caracteres especiais, que ocorre em uma linha longa em vários arquivos. Os arquivos que contêm a string estão em todo o sistema de arquivos (Linux). A cadeia pode estar em vários números de linha nos arquivos em que ela ocorre, mas ocorre uma vez por arquivo. A string, no entanto, contém um padrão específico que eu posso digitar para a identificação da string inteira.

Eu sei como encontrar os nomes dos arquivos que contêm a string, digitando o 'prefixo' da string usando GREP -lir mystringprefix / path.

Eu sei como determinar o número da linha da string no arquivo usando GREP e SED usando grep -n "prefix" file.name | sed -n “s / ^ ([0-9]) [:]./ \ 1 / p ”.

Eu sei como usar o SED para apagar no lugar a linha no arquivo que contém a cadeia de interesse usando sed -i xd / caminho / arquivo (x é o número da linha a ser excluído).

Minha pergunta é como eu posso colocar tudo isso em conjunto para determinar quais arquivos contêm o padrão, passar o nome para o GREP para determinar o número da linha no arquivo, depois passar o nome e o número da linha para o SED para remover a linha?

Eu preciso fazer isso de maneira a começar em um determinado local no sistema de arquivos e então fazer uma busca / exclusão recursivamente.

Obrigado.

questionAnswers(2)

yourAnswerToTheQuestion