我有一个目录,其中包含许多扩展名为.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
答案 0 :(得分:3)
由于这一行你正在解决这个问题:
cd ${scanresult}/${tempdir}
将您当前的工作目录更改为其他目录。在第一个文件之后无法读取其余文件。不清楚为什么要更改循环内的目录。
您可以使用此行返回原始路径:
cd -
然而,awk命令之后的大多数代码看起来都是可疑和冗余的。