Usando 'sed' para buscar y reemplazar

Usando 'sed' para buscar y reemplazar

Sé que esta pregunta probablemente ya haya sido respondida antes. He visto muchos hilos sobre esto en varios lugares, pero las respuestas suelen ser difíciles de encontrar para mí. Estoy buscando ayuda con un ejemplo de uso del comando 'sed'.

Digamos que quería actuar sobre el archivo "hello.txt" (en el mismo directorio que el mensaje). En cualquier lugar que contenga la frase "pocos", debería cambiarse por "asd". ¿Cómo sería el comando?

Respuesta1

sedes elstreameditor, en el sentido de que puedes usar |(tubería) para enviarflujos estándar(STDIN y STDOUT específicamente) a través de sedellos y modificarlos mediante programación sobre la marcha, lo que la convierte en una herramienta útil en la tradición de la filosofía Unix; pero también puede editar archivos directamente, utilizando el -iparámetro que se menciona a continuación.
Considera lo siguiente:

sed -i -e 's/few/asd/g' hello.txt

s/se usa parassustituir la expresión encontrada fewpor asd:

Los pocos, los valientes.


Los asd, los valientes.

/gsignifica "global", lo que significa hacer esto para toda la línea. Si deja de lado /g(con s/few/asd/, siempre debe haber tres barras diagonales sin importar qué) y fewaparece dos veces en la misma línea, solo la primera fewse cambia a asd:

Los pocos hombres, las pocas mujeres, los valientes.


Los hombres asd, las pocas mujeres, los valientes.

Esto es útil en algunas circunstancias, como alterar caracteres especiales al comienzo de las líneas (por ejemplo, reemplazar los símbolos de mayor que que algunas personas usan para citar material anterior en hilos de correo electrónico con una tabulación horizontal y dejar una desigualdad algebraica citada más adelante en la línea). intacto), pero en su ejemplo donde especifica queen cualquier lugar fewocurre, debe ser reemplazado, asegúrese de tenerlo /g.

Las siguientes dos opciones (banderas) se combinan en una -ie:

-iLa opción se utiliza para editar.in lugar en el archivo hello.txt.

-eopción indica elmixpression/comando a ejecutar, en este caso s/.

Nota: Es importante que utilice -i -epara buscar/reemplazar. Si lo hace -ie, crea una copia de seguridad de cada archivo con la letra 'e' adjunta.

Respuesta2

sed -i 's/fea/asd/g'  hello.txt

gramo:Global

s:sustituto

-i: trabaja en tiempo real con el archivoen su lugar

información relacionada