2015-10-16 96 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[@]}" 
相關問題