GNU/Linux >> Tutoriales Linux >  >> Linux

Reemplace espacios con guiones bajos a través de BASH

$ a="hello world"
$ echo ${a// /_}
hello_world

Según bash(1):

${parameter/pattern/string}

Sustitución de patrón. El patrón se expande para producir un patrón como en la expansión del nombre de la ruta. El parámetro se expande y la coincidencia más larga del patrón con su valor se reemplaza con una cadena. Si el patrón comienza con /, se reemplazan todas las coincidencias del patrón
con cuerda Normalmente solo se reemplaza la primera coincidencia. Si el patrón comienza con #, debe coincidir con el principio del valor expandido del parámetro. Si el patrón comienza con %, debe coincidir con el final del valor expandido del parámetro. Si la cadena es nula, se eliminan las coincidencias del patrón y se puede omitir el siguiente patrón. Si el parámetro es @ o *, la operación de sustitución se aplica a cada parámetro posicional por turno, y la expansión es la lista resultante. Si el parámetro es una variable de matriz con subíndice @ o *, la operación de sustitución se aplica a cada miembro de la matriz por turno, y la expansión es la lista resultante.


Podría intentar lo siguiente:

str="${str// /_}"

Linux
  1. Bash -c con parámetros posicionales?

  2. ¿Reemplazar líneas que coinciden con un patrón con líneas de otro archivo en orden?

  3. ¿Reemplazar nueva línea con Nul?

  4. ¿Por qué Bash no almacena comandos que comienzan con espacios?

  5. Declaración de Bash If-Else con ejemplos

Reemplace du con polvo en Linux

Qué es Git Bash; Trabajar con comandos de Git Bash

Cómo reemplazar espacios en nombres de archivos con guiones bajos en el shell de Linux

Reemplazo de una subcadena con otra cadena en Bash

Coincidencia de patrón de secuencia de comandos Bash

Reemplace el usuario gitolite3 con git