2013-02-06 60 views
1

我有一些unix文件夾(使用不同的名稱),它們應該都有相同的文件名。我想找到不具有特定的文件夾:查找沒有特定文件的文件夾

例如:

A/ 
-->a.dat 
-->b.dat 
-->c.dat 
B/ 
-->a.dat 
-->b.dat 
-->c.dat 
C/ 
-->a.dat 
-->c.dat 

當尋找b.dat文件,我怎麼搞清楚的是,C文件夾沒有它?

回答

3

循環遍歷每個目錄,如果它沒有你正在尋找的文件,將它添加到結果列表中。

隨着文件的結構,你上面給了,這個腳本:

#!/bin/bash 

result=() 
for D in *; do 
    if [ -d "${D}" ] && ! [ -f "${D}/b.dat" ]; then 
     result+=("${D}") 
    fi 
done 

echo "result is" "${result[@]}" 

打印:

result is C 
+0

感謝@chepner的bug修復! – andrewdotn

+0

嘗試此類似的問題,但我的腳本只是保持(從上面複製和粘貼)給出錯誤'myscript.sh:3:語法錯誤:「(」意外' 已嘗試** dos2unix **的情況下, 此外,有沒有辦法使用這個完整的文件名不知道,除了結束,例如: '* -1-.jpg' – user1589800

相關問題