转义路径名中的空格

时间:2013-10-15 07:09:54

标签: macos bash sed

我正在尝试以路径名/Volumes/NO NAME转义空格。我需要通过bash脚本访问此目录中的文件。我使用过sedprintf命令,似乎都没有用。我到目前为止的代码:

while read line
do
  if [[ -d ${line} ]]; then
    echo "${line} is a directory. Skipping this.";
  elif [[ -f ${line} ]]; then
    spacedOutLine=`echo ${line} | sed -e 's/ /\\ /g'`;
    #spacedOutLine=$(printf %q "$line");
    echo "line = ${line} and spacedOutLine = ${spacedOutLine}";
  else
    echo "Some other type of file. Unrecognized.";
  fi
done < ${2}

这两项似乎都没有奏效。对于像/Volumes/NO NAME/hello.txt这样的输入,输出为:

/Volumes/NO: No such file or directory
NAME/hello.txt: No such file or directory  

我在Mac上并通过终端使用bash。关于这一点,我也经历了很多其他关于此事的帖子,这对我没有帮助。

1 个答案:

答案 0 :(得分:1)

在调用${line}变量时使用双引号。

"${line}"