2014-03-29 937 views
1

我有一个目录,其中包含许多带.sum扩展名的文件。 我使用下面的脚本将所有.sum文件的内容列出到temp.log文件中。当第一个.sum文件被写入temp.log时,aw​​k实用程序似乎给剩余的.sum文件带来错误。请帮助,我在这里失踪。awk:致命:无法打开文件'(没有这样的文件或目录)

cd $HOME/aphp/result/${test} 



for filename in *.sum 
do 
tempdir=$filename 
awk '/Failed/' "${filename}" > temp.log 
awk '/Error/' "${filename}" >> temp.log 
    if [ -s temp.log ] 
    then   

    mkdir -p ${scanresult}/${tempdir} 
    mv temp.log ${scanresult}/${tempdir}/temp.log 
    cd ${scanresult}/${tempdir} 
    mv temp.log ${tempdir}_failed.txt 
    else 
    echo Skipping ${tempdir} scanning as it is executed 100 percent with no fail or error. 
    rm temp.log  
    fi 
done 

错误:

awk: fatal: cannot open file `dss154.sum' for reading (No such file or directory) 
awk: fatal: cannot open file `dss235.sum' for reading (No such file or directory) 
awk: fatal: cannot open file `dss287.sum' for reading (No such file or directory) 

的ls -l *的.sum

-rwxrwxrwx 1 smruti smruti 1844 Mar 25 16:23 dss103.sum 
-rwxrwxrwx 1 smruti smruti 2353 Mar 25 16:40 dss154.sum 
-rwxrwxrwx 1 smruti smruti 1023 Mar 25 16:43 dss235.sum 
-rwxrwxrwx 1 smruti smruti 908 Mar 25 16:45 dss287.sum 
-rwxrwxrwx 1 smruti smruti 867 Mar 25 16:45 dss288.sum 
-rwxrwxrwx 1 smruti smruti 1064 Mar 25 16:47 dss350.sum 
+0

显示'ls -l * .sum'的输出 – anubhava

+0

当前目录中的每个文件是否都会给出该错误?什么是文件的权限? – lurker

+0

所有文件都具有读取权限,我作为超级用户执行。只有第一个文件被awk读取,剩下的文件会被跳过而出错。 – May

回答

3

你做了这个问题,因为这条线:

cd ${scanresult}/${tempdir} 

正在改变你当前的工作目录是其他的。在第一个文件之后,其余的文件不能被读取。目前还不清楚为什么你要改变循环内的目录。

您可以使用此行回到原来的路径:

但是大部分代码后
cd - 

awk命令看起来可疑和冗余。

+0

非常感谢..修复它,它的工作..再次感谢吨...并且是..删除了大部分冗余代码... – May

+0

不客气。 – anubhava

相关问题