GNU/Linux >> Tutoriales Linux >  >> Linux

Reemplazar una palabra con otra en bash

Puedes usar sed para eso:

$ sed s/sara/mary/g <<< 'hello sara , my name is sara too .'
hello mary , my name is mary too .

O si desea cambiar un archivo en su lugar:

$ cat FILE
hello sara , my name is sara too .
$ sed -i s/sara/mary/g FILE
$ cat FILE
hello mary , my name is mary too .

Puedes usar sed:

# sed 's/sara/mary/g' FILENAME

dará salida a los resultados. La construcción s/// significa buscar y reemplazar usando expresiones regulares. La 'g' al final significa "todas las instancias" (no solo la primera).

También puede usar perl y editar el archivo en su lugar:

# perl -p -i -e 's/sara/mary/g;' FILENAME

O awk

awk '{gsub("sara","mary")}1' <<< "hello sara, my name is sara too."

Manera pura de bash:

before='hello sara , my name is sara too .'
after="${before//sara/mary}"
echo "$after"

O usando sed:

after=$(sed 's/sara/mary/g' <<< "$before")
echo "$after"

SALIDA:

hello mary , my name is mary too .

Linux
  1. Uso de modificadores de palabras con el historial de Bash en Linux

  2. Bash -c con parámetros posicionales?

  3. ¿Reemplazar una línea con otro contenido usando Sed y paralelo para un archivo grande?

  4. Alias ​​con variable en bash

  5. ¿Cómo se reemplaza el texto similar a sed con python?

Reemplace du con polvo en Linux

Reemplazo de una subcadena con otra cadena en Bash

Reemplace espacios con guiones bajos a través de BASH

¿Cómo reemplazar recursivamente los caracteres con sed?

reemplazar líneas en un archivo con líneas en otro por número de línea

sed reemplaza todas las pestañas y espacios con un solo espacio