He hecho lo siguiente en la línea de comando:
$ text="name with space"
$ echo $text
name with space
Estoy tratando de usar tr -d ' '
para eliminar los espacios y tener un resultado de:
namewithspace
He intentado algunas cosas como:
text=echo $text | tr -d ' '
¡Hasta ahora no hemos tenido suerte, así que espero que gente maravillosa pueda ayudar!
shell
command-line
tr
usuario3347022
fuente
fuente
No necesita ningún
echo
comando, solo use Here String en su lugar:Solo por curiosidad, verifiqué cuánto tiempo lleva una tarea tan trivial para diferentes herramientas. Aquí están los resultados ordenados de más lento a más rápido:
La operación de shell pura es definitivamente la más rápida, lo que no es sorprendente, ¡pero lo que es realmente impresionante es que es más de 100 veces más rápido que el comando más lento!
fuente
Simplemente modifique su variable de texto como se muestra a continuación.
Sin embargo, si tenemos caracteres de control, esto podría romperse. Entonces, según la sugerencia de Kasperd, podríamos tener comillas dobles a su alrededor. Entonces,
Será una mejor versión.
fuente
$text
contiene caracteres de control, que serían interpretados por el shell. Mejor poner algunas comillas dobles allí:text="$(echo "$text" | tr -d ' ')"
fuente
un caso especial cuando necesita una variable que tiene un número:
sh:
ksh:
fuente