我有数百个经常导入的文件,因此目录中除了带空格的文件名外还包含一些空格。每个文件都有一个 4 位数的前缀 (seq #),我需要将其删除。我每晚都在编写一个脚本来执行此操作,但它似乎无法识别。我研究过很多关于这个主题的想法,但似乎都行不通。所以我写了一个小脚本来验证文件的存在(见下文)
1 #!/bin/bash
2 #PATH="junk/DirNo1/"
3 PATH="junk/Dir\ No2/"
4 #PATH="/home/roy/junk/DirNo1/"
5 #PATH="/home/roy/junk/Dir\ No2/"
6
7 FILE="8888\ rty.txt"
8 CMB='"'$PATH$FILE'"'
9 # CMB=${cmb// /\\ }
10 echo $CMB
11
12 if [[ -f "$CMB" ]]; then
13 echo "$FILE Exists"
14 fi
15
16 if test -f "$CMB"; then
17 echo "File exists.."
18 fi
如您所见,我几乎尝试了所有方法,唯一能检测到文件存在的方法就是 PATH 和 FILE 中不包含空格。我尝试过在路径和/或文件名周围使用双引号,以及带或不带转义空格。这些应该不难,所以任何想法都会受到赞赏。