find . -type f -print0 | xargs -0 sed -i /KeyWord/d
Con un OSX sed:
find . -type f -print0 | xargs -0 sed -i '' /KeyWord/d
El primer comando findencuentra todos los archivos estándar (no directorios, tuberías, etc.), los imprime separados por \0(para que los nombres de los archivos puedan contener espacios, líneas nuevas, etc.).
El segundo comando xargslee la salida de find, toma una lista basada en un separador ( \0debido a -0), invoca sed -i [...]con parámetros agregados de la lista ( sedse llamará varias veces si hay muchos archivos, ya que la longitud máxima de los parámetros está limitada en cada invocación).
El sedcomando modifica in-place ( -i).
En cuanto a /KeyWord/d, eliminará las líneas que contienen la expresión regular KeyWord.
Debería aprender seda comprender correctamente la sintaxis (simple pero inusual) y consultar las páginas de manual correspondientes para obtener más información sobre las herramientas involucradas aquí.
Y como me gusta promocionar zsh, la solución con sus globos extendidos:
s/KeyWord//g
(sustituyeKeyWord
con '' (cadena vacía),g
para todos (no solo el primero en cada línea).Puede usar Vim en modo Ex:
g
búsqueda globald
Eliminarx
guardar y cerrarfuente
find: illegal option -- t
, tuve que agregar el.
find . -type f -exec ex -sc g/KeyWord/d -cx {} ';'