Shell awk:fatal:无法打开文件';用于读取(无此类文件或目录)

Shell awk:fatal:无法打开文件';用于读取(无此类文件或目录),shell,awk,Shell,Awk,我有一个目录,其中包含许多扩展名为.sum的文件。 我使用下面的脚本将所有.sum文件的内容列出到temp.log文件中。当第一个.sum文件被写入temp.log时,awk实用程序似乎给出了剩余.sum文件的错误。请帮帮我,我在这里错过了什么 cd $HOME/aphp/result/${test} for filename in *.sum do tempdir=$filename awk '/Failed/' "${filename}" > temp.log awk '/Err

我有一个目录,其中包含许多扩展名为.sum的文件。 我使用下面的脚本将所有.sum文件的内容列出到temp.log文件中。当第一个.sum文件被写入temp.log时,awk实用程序似乎给出了剩余.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

由于以下原因,您将遇到此问题:

cd ${scanresult}/${tempdir}
正在将当前工作目录更改为其他目录。之后,在第一个文件之后将无法读取其余文件。现在还不清楚为什么要在循环中更改目录

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

cd -

但是,awk命令后的大多数代码看起来可疑且冗余。

显示
ls-l*.sum的输出是否当前目录中的每个文件都显示该错误?文件的权限是什么?所有文件都有读取权限,我以超级用户身份执行。只有第一个文件被awk读取,其余文件被跳过,但有错误。@Smruti:不要将输出放在注释中。编辑您的问题并在那里提供。这就是您的问题,
cd
。您
cd
ed到了另一个目录,再也没有回到原始目录。来处理后续文件。非常感谢。。修复了它,它工作了。。再次感谢你。。。是的。。删除了大多数冗余代码。。。