论坛首页 入门技术论坛

shell 判断某扩展名文件是否存在

浏览 7947 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-11-13  

因为需求需要处理大量log文件,考虑到awk的高效,但处理前需要判断文件是否存在,因.log文件有多个,所以用if判断。

 

if [ -e *.log ]; then

 

此时如果文件不存在,则不报错误。但如果有多个.log文件存在,则报错

 

if[  too many arguments 事实上因为-e 或者 -f 都只能接受一个参数,用了通配符后会有多个文件存在的可能就导致多个参数出现的可能,所以报错。

 

经过多次测试也找了些资料,发现以下解决方法:

 

files=$(ls *.log 2> /dev/null | wc -l)

if [ "$files" != "0" ] ;

then

 

即可达到目的。

   发表时间:2010-01-16  
感谢。。用这个办法,我解决了一个小问题

类似你这个代码。。
同时可以用

for file in $files ; do
    echo "${file}"
    # 你的应用代码
done

列遍历所有的文件。。呵呵
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics