find . -type f -print0 | xargs -0 sed -i /KeyWord/d
Com um sed do OSX:
find . -type f -print0 | xargs -0 sed -i '' /KeyWord/d
Primeiro comando find encontra todos os arquivos padrão (não diretórios, canos ou etc.), imprime-os separados por \0 (assim, os nomes de arquivos podem conter espaços, novas linhas, etc.).
Segundo comando xargs lê a saída de find, pega uma lista baseada em um separador ( \0 por causa de -0 ), invoca sed -i [...] com parâmetros adicionados da lista ( sed será chamado várias vezes se houver muitos arquivos, já que o comprimento máximo dos parâmetros é limitado em cada chamada).
o sed comando modifica in-loco ( -i ).
Quanto a /KeyWord/d, ele irá deletar linhas contendo a expressão regular KeyWord.
Você deveria aprender sed para entender adequadamente a sintaxe (simples, mas incomum) e consulte as páginas de manual apropriadas para obter mais informações sobre as ferramentas envolvidas aqui.
E como eu gosto de promover zsh, a solução com seus globs estendidos:
s/KeyWord//g
(substitutosKeyWord
com '' (string vazia),g
para todos (não apenas o primeiro em cada linha).Você pode usar o Vim no modo Ex:
g
pesquisa globald
excluirx
salvar e fecharfonte
find: illegal option -- t
, teve que adicionar o.
find . -type f -exec ex -sc g/KeyWord/d -cx {} ';'