Utilizo el grep
comando para buscar una cadena en muchos archivos. ¿Existe algo parecido a "buscar y reemplazar"?
Respuesta1
estas buscando elsed
dominio. Por ejemplo, para reemplazar "perro" por "gato" en todos los archivos de texto en el directorio actual:
sed -i 's/dog/cat/' *.txt
Respuesta2
Me viene a la mente sed. Ejemplo:
sed s/cat/dog/ <input >output
Esto busca cat en una línea y coloca a dog en su lugar en la entrada del archivo y escribe en la salida del archivo.
Respuesta3
sed
es la herramienta adecuada; pero, como alternativa, incluso puedes usar ex
comandos en vim
:
vim -c 'args <files> | argdo %s/cat/dog/g | x'
donde <files>
está la lista de archivos o patrones en los que quieres hacer la sustitución.
Respuesta4
Puedes usar Vim en modo Ex:
for b in *.txt
do
ex -sc '%s/OLD/NEW/g|x' "$b"
done
%
seleccionar todas las líneass
sustitutog
reemplazar todas las instancias en cada líneax
guardar y cerrar