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''