Saltar al contenido

Reemplazo solo de variables específicas con envsubst

Solución:

Según la página del manual:

envsubst [OPTION] [SHELL-FORMAT]

Si se proporciona un SHELL-FORMAT, solo se sustituyen las variables de entorno a las que se hace referencia en SHELL-FORMAT; de lo contrario, se sustituyen todas las referencias de variables de entorno que aparecen en la entrada estándar.

Donde están las cadenas SHELL-FORMAT “cadenas con referencias a variables de shell en el formulario $variable o ${variable}[…] Los nombres de las variables deben constar únicamente de caracteres ASCII alfanuméricos o subrayados, no comenzar con un dígito y no estar vacíos; de lo contrario, se ignorará dicha referencia de variable. “.
Entonces, uno tiene que pasar los nombres de las variables respectivas a envsubst en una cadena de formato de shell (obviamente, deben escaparse / citarse para pasar literalmente a envsubst). Ejemplo:

archivo de entrada, por ejemplo infile:

VAR1=${VAR1}
VAR2=${VAR2}
VAR3=${VAR3}

y algunos valores como

export  VAR1="one" VAR2="two" VAR3="three"

luego corriendo

envsubst '${VAR1} ${VAR3}' <infile

o

envsubst '${VAR1},${VAR3}' <infile

o

envsubst '${VAR1}
${VAR3}' <infile

salidas

VAR1=one
VAR2=${VAR2}
VAR3=three

O, si prefiere la barra invertida:

envsubst $VAR1,$VAR2 <infile

produce

VAR1=one
VAR2=two
VAR3=${VAR3}
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *