如何在循环内的目录中找到特定文件?

时间:2013-06-07 14:53:27

标签: bash unix loops filenames

我无法指向包含另一个目录中另一个文件的部分字符串的特定文件。

如果查看以下命令,假设我在./A中有一个文件abc.foo,我需要使用./B中的abc_extendedname1.jpeg来应用函数

for file in ./A/*; 

do echo $file;
function $file -opt ./B/${file%.foo}_extendedname1.jpeg ./B/${file%.foo}_extendedname2.jpeg;

done

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:2)

for file in ./A/*; do
  basename=${file##*/}
  basename_noext=${basename%.*}
  echo "$file"
  your_function "$file" -out \
    "./B/${basename_noext}_extendedname1.jpeg" \
    "./B/${basename_noext}_extendedname2.jpeg"
done

答案 1 :(得分:-1)

export d="`pwd`"
find ./A/*|while read file
do
    echo "$file"
    if [ -f  "$d/B/${file}_extendedname1.jpeg" ]
    then
        echo "$d/B/${file}_extendedname1.jpeg" found
    fi
done