我的代码是:
#!bin/bash
n=1
for i in `ls 201*`
do
if [ "$n" -gt 8 ]
then
awk -F "\x01" '{print $1}' $i | sort | uniq >> temp
let "n++"
else
sort temp | uniq -c | awk '$1>3' | wc -l >> result.txt
rm temp
n=1
fi
done
我想计算每周出现三次以上的人数。错误消息是:
sort: open failed: temp: No such file or directory
rm: cannot remove `temp': No such file or directory
此代码有什么问题?
答案 0 :(得分:1)
我认为你想要if [ "$n" -lt 8 ]
而不是if [ "$n" -gt 8 ]
。
只有当n 大于 8时才增加它,否则你将其设置为1.所以你从" else"开始分支,永远不会到达"然后"。
答案 1 :(得分:1)
执行的第一件事是else stmt,它期望temp存在。您的错误位于sort temp
。