Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Unix command to escape spaces

Tags:

linux

shell

unix

I am new to shell script. Can someone help me with command to escape the space with "\ ". I have a variable FILE_PATH=/path/to my/text file ,
I want to escape the spaces alone FILE_PATH=/path/to\ my/text\ file

I tried with tr -s command but it doesnt help

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

Can somebody suggest the right command !!

like image 634
Lolly Avatar asked Oct 09 '12 19:10

Lolly


People also ask

How do you escape from space?

Three Ways to Escape Spaces on WindowsBy enclosing the path (or parts of it) in double quotation marks ( ” ). By adding a caret character ( ^ ) before each space. (This only works in Command Prompt/CMD, and it doesn't seem to work with every command.) By adding a grave accent character ( ` ) before each space.

How is space represented in Unix?

Summary. This article has discussed the problem of spaces in the Unix command line. Spaces are interpreted by the shell as special characters that separate command line arguments, so paths containing spaces are split into multiple parts when parsed by the shell.


1 Answers

If you are using bash, you can use its builtin printf's %q formatter (type help printf in bash):

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

This will not only quote space, but also all special characters for shell.

like image 161
Bao Haojun Avatar answered Sep 30 '22 19:09

Bao Haojun