awk:致命:无法打开文件'阅读(没有这样的文件或目录)

时间:2014-03-29 13:52:41

标签: shell awk

我有一个目录,其中包含许多扩展名为.sum的文件。 我使用下面的脚本将所有.sum文件的内容列出到temp.log文件中。当第一个.sum文件被写入temp.log时,aw​​k实用程序似乎为剩余的.sum文件提供了错误。请帮忙,我在这里缺少什么。

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

1 个答案:

答案 0 :(得分:3)

由于这一行你正在解决这个问题:

cd ${scanresult}/${tempdir}

将您当前的工作目录更改为其他目录。在第一个文件之后无法读取其余文件。不清楚为什么要更改循环内的目录。

您可以使用此行返回原始路径:

cd -

然而,awk命令之后的大多数代码看起来都是可疑和冗余的。