script programacion pasar parametros espaƱol espacios ejemplos directorios con comandos basicos linux shell unix

linux - programacion - Comando Unix para escapar de los espacios.



script unix (6)

Soy nuevo en shell script. ¿Puede alguien ayudarme con el comando para escapar del espacio con "/". Tengo una variable FILE_PATH = / ruta / a mi / archivo de texto,
Quiero escapar de los espacios solo FILE_PATH = / path / to / my / text / file

Probé con el comando tr -s pero no ayuda

FILE_PATH = echo FILE_PATH | tr -s " " "// " echo FILE_PATH | tr -s " " "// "

¿Alguien puede sugerir el comando correcto?


Hacer que una cadena sea segura es más que solo escapar de los espacios, pero puedes escapar de los espacios con:

FILE_PATH=$( echo "$FILE_PATH" | sed ''s/ /// /g'' )


Puede usar '' comillas simples '' para operar en una ruta que contiene espacios:

cp ''/path/with spaces/file.txt'' ''/another/spacey path/dir''

grep foo ''/my/super spacey/path with spaces/folder/*''

en un guión:

#!/bin/bash spacey_dir=''My Documents'' spacey_file=''Hello World.txt'' mkdir ''$spacey_dir'' touch ''${spacey_dir}/${spacey_file}''


Puedes hacerlo con sed :

NEW_FILE_PATH="$(echo $FILE_PATH | sed ''s/ /// /g'')"


Si está usando bash, puede usar el formateador% q help printf en help printf (escriba help printf en bash):

FILENAME=$(printf %q "$FILENAME")

Esto no solo citará el espacio, sino también todos los caracteres especiales para shell.


Usa comillas para preservar el carácter ESPACIO


FILE_PATH=/path/to my/text file FILE_PATH=echo FILE_PATH | tr -s " " "// "

Esa segunda línea debe ser

FILE_PATH=echo $FILE_PATH | tr -s " " "// "

Pero no creo que importe. Una vez que has llegado a esta etapa, llegas demasiado tarde. La variable se ha establecido y los espacios se escapan o la variable es incorrecta.

FILE_PATH = ''/ ruta / a mi / archivo de texto''