2015-10-16 94 views
0

我期待6个文件存在于当前目录:如何获取不存在的文件并将其存储到变量中?

prefix_alpha.txt 
prefix_beta.txt 
prefix_gamma_.txt 
prefix_delta.txt 
prefix_epsilon.txt 
prefix_feta.txt 

如何获得任何文件的列表中不存在并将它们存储到Bash中的变量?如果多于一个的文件名不存在,只需要一个空格。结束动作是沿INSERT INTO table (columnname) VALUES ("File(s) '$notexistingfiles' don't exist")

+0

请参阅[bash手册页]中的-f和'-s'表达式(https://www.gnu.org/software/bash/manual/bash.html#Bash-Conditional-表达式)。 –

回答

3

行一个SQL语句中使用的文件名可以使用test(7)命令来检查文件是否存在,因此,所有你需要做的是循环超预期的文件,并将它们添加到一个数组如果它们不存在。

# The target files 
FILES=(
    "prefix_alpha.txt" 
    "prefix_beta.txt" 
    "prefix_gamma_.txt" 
    "prefix_delta.txt" 
    "prefix_epsilon.txt" 
    "prefix_feta.txt" 
) 

# Create a missing array 
declare -a MISSING 

for file in "${FILES[@]}"; do 
    test -e "$file" || MISSING+=("$file") 
done 

echo "${MISSING[@]}" 
相关问题