Cómo reemplazar un personaje con otro en el guión de Bash
Reemplazar un personaje con otro es una tarea común en las secuencias de comandos y puede ser útil en muchos escenarios diferentes. Estas son las tres formas fáciles de reemplazar un personaje con otro en un script bash:
Cómo reemplazar un personaje con otro usando el comando TR en Bash
El comando TR es una herramienta simple para traducir, eliminar o exprimir caracteres en una cadena. Se puede usar para reemplazar un personaje con otro especificando los caracteres para ser reemplazados y sus reemplazos, aquí está la sintaxis para usar este comando:
tr '' ''
Aquí para ilustración si he tomado una cadena que es "Hola Linux" y si quiero reemplazar la letra L -Mertura L por letra mayúscula W, se puede hacer con el comando TR como este:
Echo "Hola Linux" | tr 'l' 'w'
Aquí está el código de bash completo que muestra cómo usar el comando TR para reemplazar un carácter con otro:
#!/bin/bash
Main_string = "Hola Linux"
Exportar new_string = $ (echo "$ main_string" | tr 'l' 'w')
echo "main_string:" $ main_string
echo "modificado_string:" $ new_string
Aquí está la salida del script bash, l se reemplaza con w:
Cómo reemplazar un personaje con otro usando el comando SED en Bash
Otra forma de reemplazar a un personaje con otro personaje en Bash es usar el comando SED. El comando SED es un editor de transmisión que puede realizar varias operaciones en una cadena, incluida la sustitución. Aquí está la sintaxis para usar este comando para reemplazar un personaje con otro:
sed 's /// g'
Aquí para ilustración si he tomado una cadena que es "Hola Linux" y quiero reemplazar la letra minúscula "L" con "W", entonces se puede hacer con el comando TR como este:
Echo "Hola Linux" | sed 's/l/w/g'
Aquí está el código de bash completo que muestra cómo usar el comando SED para reemplazar un carácter con otro:
#!/bin/bash
Main_string = "Hola Linux"
New_string = $ (echo "$ main_string" | sed 's/l/w/g')
echo "main_string:" $ main_string
echo "modificado_string:" $ new_string
En este ejemplo, estamos utilizando el comando echo para emitir la cadena "hola linux", y luego tuve la salida al comando SED. El comando SED está utilizando el comando de sustitución (s) para reemplazar todas las ocurrencias de la letra "l" con la letra "w". La opción G al final del comando le dice a SED que reemplace todas las ocurrencias del personaje en la cadena, no solo el primer ocurrencia. La salida de este comando será "Hola Winux":
Cómo reemplazar un personaje con otro usando la expansión de parámetros en Bash
Otra forma de reemplazar a un personaje con otro en Bash, puede ser utilizando una expansión de parámetros y aquí hay un ejemplo que reemplaza "L" de la cadena original "W" nuevo personaje:
#!/bin/bash
Main_string = "Hola Linux"
New_string = "$ main_string // l/w"
echo "main_string:" $ main_string
echo "modificado_string:" $ new_string
En este ejemplo, estamos utilizando la expansión de los parámetros para reemplazar todas las ocurrencias de la letra minúscula "H" con la letra "S" en la variable Main_String. La salida de este comando será "Hola Winux":
Conclusión
Hay varias formas de reemplazar a un personaje con otro personaje en Bash, incluido el uso del comando TR, el comando SED y la expansión del parámetro. Cada método tiene sus propias ventajas y desventajas, así que elija el que funcione mejor para su caso de uso específico, ya que esta guía ofrece los tres métodos para hacerlo.