使用文件名中的通配符在unix中查找文件

时间:2012-05-22 06:41:07

标签: file unix find ksh

我在名称模式的文件夹中有几个文件,其中一个部分是可变的。

file1.abc.12.xyz
file2.abc.14.xyz
file3.abc.98.xyz

所以上面三个文件名中的第三部分(数字)每天都在变化。

现在,我有一个脚本可以对文件数据执行一些任务。但是,在完成工作之前,我想检查文件是否存在,然后执行任务:

if(file exist) then
     //do this
fi

我在数字部分使用通配符'*'编写了以下代码:

export mydir=/myprog/mydata

if[find $mydir/file1.abc.*.xyz]; then 
   # my tasks here

fi

但是,它无法正常工作并给出以下错误:

 [find: not found [No such file or directory]

使用-f而不是find也不起作用:

if[-f $mydir/file1.abc.*.xyz]; then
  # my tasks here

fi

我在这里做错了什么?我正在使用korn shell。

感谢阅读!

2 个答案:

答案 0 :(得分:0)

for i in file1.abc.*.xyz ; do
    # use $i here ...
done

答案 1 :(得分:0)

我在unix关键字之前没有使用空格......

例如“if [-f”实际应该是“if [-f”,括号前后有空格。